JavaScript |新关键字
JavaScript 中的New 关键字用于创建具有构造函数的对象的实例。在使用 'new' 运算符调用构造函数时,将执行以下操作:
- 创建一个新的空对象。
- 新对象的内部“原型”属性 (__proto__) 设置为与构造函数的原型相同。
- 'this' 变量指向新创建的对象。它将使用“this”关键字声明的属性绑定到新对象。
- 当构造函数返回一个非原始值(自定义 JavaScript 对象)时,将返回一个新创建的对象。如果构造函数返回原始值,它将被忽略。在函数结束时,如果函数体中没有 return 语句,则返回 'this'。
句法:
new constructorFunction(arguments)
参数:
- ConstructorFunction:指定对象实例类型的类或函数。
- 参数:将调用构造函数的值列表。
示例 1:
输出:
Yellow
在上面的例子中,'new' 关键字创建了一个空对象。在这里,Fruit() 包括三个属性 'color'、'taste' 和 'seeds',它们是用 'this' 关键字声明的。因此,一个新的空对象现在将包含所有这些属性,即“颜色”、“味道”和“种子”。新创建的对象作为fruit1() 返回。
示例 2:
输出:
100 200
在上面的例子中,'new' 关键字创建了一个空对象,然后将这个空对象的 'prototype' 属性设置为 func() 的原型属性。使用 func.prototype.y 分配新属性“b”。因此,新对象还将包含“b”属性。然后它将使用 this 关键字声明的所有属性和函数绑定到一个新的空对象。在这里,func() 只包含一个用这个关键字声明的属性“a”。所以新的空对象现在将包含“a”属性。 func() 还包括未使用此关键字声明的“c”变量。所以'c'不会包含在新对象中。最后,返回新创建的对象。请注意, func() 不包括 areturn 语句。编译器将在末尾隐式插入“return this”。