首页 > 其他分享 >js对象及new对象/函数的比较区别

js对象及new对象/函数的比较区别

时间:2024-03-20 11:34:52浏览次数:18  
标签:qiguo 函数 对象 js Chenqiguo var new prototype

function Chenqiguo(){

    alert('qiguo');

}

Chenqiguo.prototype.getName = function(){

    alert('prototype qiguo');

}

我们分别用new实例化构造函数和用普通的函数执行对原型求值

var chenqiguo = new Chenqiguo();//打印qiguo

chenqiguo.getName(); //打印prototype name

var name = Chenqiguo();  //打印qiguo

name.getName();  //会报错, name is undefined

可以看到当我们用new 操作符创建的对象的时候能够打印原型上的值,而用常规函数的时候却不能,这样就解释了在我们当把函数当作构造函数创建新的对象的时候,其内部的prototype属性成为了被创建对象的一个引用.

抛开语言层次来观察函数和构造器的话,构造器的名称通常都使用首字母大写的形式来表表明其是一个构造函数,用小写字母的话就表示其是一个普通的函数.作为javascript的开发人员来说,应该严格区分这两种情况,如果是构造器就首字母大写,否则首字母就小写

var person=new Person();//person是一个对象

var person = Person();//这只是一次普通的函数调用并赋值而已。

标签:qiguo,函数,对象,js,Chenqiguo,var,new,prototype
From: https://www.cnblogs.com/lsc-boke/p/18084873

相关文章

  • 基于Js和Java实现xlsx\xls文档的导入和下载
    基于Js和Java+MyBatis实现xlsx\xls文档的导入下载、导出背景:​ 实现xlsx\xls文档的导入、导出​ 导入效果:​ 导出效果:导出效果图1、导入、下载1.1、前台<divstyle="margin-left:15px"><inputtype="file"id="selectFile"name="selectFile"/>......
  • C# 中使对象序列化/反序列化 Json 支持使用派生类型以及泛型的方式
    C#中使对象序列化/反序列化Json支持使用派生类型以及泛型方式废话#前言#为啥想写这个博客最近自己写的框架有用到这个类似工作流,支持节点编码自定义,动态运行自定义.尽量减少动态解析这就需要确定类型.有什么好的奇思妙想可以一起来讨论噢(现在还是毛坯,测......
  • package-lock.json
    生成package-lock.json文件:1、运行npminstall命令,npm将自动生成package-lock.json文件。2、如果你已经安装了依赖,但是没有生成package-lock.json文件:运行npminstall--save命令,这将会更新package-lock.json文件,并确保所有依赖项都被正确记录。3、如果你想要使用package-lock......
  • JAVASE各模块结构图:面向对象、常用类、多线程、异常、IO流、集合、网络编程
    ......
  • JSON Web Token 入门教程
    本文收录于Github.com/niumoo/JavaNotes,Java系列文档,数据结构与算法!本文收录于网站:https://www.wdbyte.com/,我的公众号:程序猿阿朗JSONWebToken(JWT)是一种可以在多方之间安全共享数据的开放标准,JWT数据经过编码和数字签名生成,可以确保其真实性,也因此JWT通常用于身份认证......
  • 保护范围和对象
         ......
  • 4.零基础Nodejs快速入门——Node.js 模块化
    Node.js模块化一、介绍1.1什么是模块化与模块?将一个复杂的程序文件依据一定规则(规范)拆分成多个文件的过程称之为模块化其中拆分出的每个文件就是一个模块,模块的内部数据是私有的,不过模块可以暴露内部数据以便其他模块使用1.2什么是模块化项目?......
  • 6.零基础Nodejs快速入门——包管理工具
    包管理工具一、概念介绍1.1包是什么『包』英文单词是package,代表了一组特定功能的源码集合1.2包管理工具管理『包』的应用软件,可以对「包」进行下载安装,更新,删除,上传等操作借助包管理工具,可以快速开发项目,提升开发效率包管理工......
  • 2024中国行政区域含港澳台【省市区县镇乡村】五级联动地址json数据
    GitHub-657258535/China-Area-Region-Administrative-Divisions:中华人民共和国行政区划:省级(省份)、地级(城市)、县级(区县)、乡级(乡镇街道)、村级(村委会居委会)五级联动地址数据。 中华人民共和国行政区划:省级(省份)、地级(城市)、县级(区县)、乡级(乡镇街道)、村级(村委会居委会)......
  • es6关于class在js和ts中的的一些理解
    关于class在js和ts中的的一些理解js中:classHuman{//加上static该属性只能通过Human类去获取;//不加static该属性可以通过实例去获取其实等同于写在consturctor里面。只不过是写死的,不能自定义statichobby="吃饭";constructor(name,age){th......