时间:2021-05-26
我们先来看个实例
function Me(name,age,job){ this.name = name; this.age = age; this.job = job;}请问这以下两种实例化对象方式有什么区别呢?
var mefun1 = new Me('fei','20','it');var mefun2 = Me('fei','20','it');简单的说
第一种是构造函数式,即通过new运算符调用构造函数Function来创建函数
第二种不是实例化,只是调用函数把返回值赋给变量。
再扩展下
JavaScript 中并没有真正的类,但JavaScript 中有构造函数和new 运算符。构造函数用来给实例对象初始化属性和值。任何JavaScript 函数都可以用做构造函数,构造函数必须使用new 运算符作为前缀来创建新的实例。
new 运算符改变了函数的执行上下文,同时改变了return 语句的行为。实际上,使用new和构造函数很类似于传统的实现了类的语言:
// 实例化一个Mevar alice = new Me('alice', 18, 'Coder');// 检查这个实例assert( alice instanceof Me );构造函数的命名通常使用驼峰命名法,首字母大写,以此和普通的函数区分开来,这是
一种习惯用法。
这个函数只会返回undefined,并且执行上下文是window(全局)对象,无意间创建了3个全局变量name,age,job。调用构造函数时不要丢掉new 关键字。
当使用new 关键字来调用构造函数时,执行上下文从全局对象(window)变成一个空的上下文,这个上下文代表了新生成的实例。因此,this 关键字指向当前创建的实例。尽管理解起来有些绕,实际上其他语言内置类机制的实现也是如此。
默认情况下,如果你的构造函数中没有返回任何内容,就会返回this——当前的上下文。
要不然就返回任意非原始类型的值.
以上所述就是本文的全部内容了,希望大家能够喜欢。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
使用new初始化对象中的指针成员时遇到的问题在构造函数中使用new初始化指针成员,那么析构函数中就必须使delete,并且new对应delete,new[]则对
From:JavaEye.com注意JavaScript中对象类别的定义,使用function来定义对象类别,初始化对象使用new操作符functionPers
前言和其他高级语言一样javascript中也有new运算符,我们知道new运算符是用来实例化一个类,从而在内存中分配一个实例对象。但在javascript中,
和其他高级语言一样javascript中也有new运算符,我们知道new运算符是用来实例化一个类,从而在内存中分配一个实例对象。但在javascript中,万物
关于对象的实例化大家想到的通常是直接new,除了这个,还有些单实例模式,层次间调用等等getInstance的使用:*在主函数开始时调用,返回一个实例化对象,此