new
操作符在JavaScript中用于创建一个新的对象实例。当你使用new
关键字调用一个函数时,它执行以下步骤:,,1. 创建一个新的空对象。,2. 将这个空对象的原型设置为构造函数的prototype属性。,3. 将这个空对象作为this的上下文,调用构造函数。,4. 如果构造函数没有返回自己的对象,那么返回这个新对象。,,这样,通过new
操作符可以实例化一个特定构造函数定义的对象类型。new操作符
在JavaScript中,new
操作符用于创建一个用户定义的对象类型的实例或者具有构造器的内置对象的一个新实例,当你使用new
来调用一个函数时,这个函数将作为一个构造器(constructor)来运行。
语法
new constructor[([arguments])]
这里的constructor
是一个可选的参数列表的函数。new
关键字会执行以下操作:
1、创建一个新的空的JS对象。
2、链接该对象(即设置该对象的构造器)到另一个对象。
3、将步骤1新创建的对象作为this
的上下文。
4、如果该函数没有返回对象,则返回this
。
示例
假设我们有一个构造器函数Car
:
function Car(make, model, year) { this.make = make; this.model = model; this.year = year; }
我们可以使用new
关键字来创建Car
的一个新实例:
var car1 = new Car('Eagle', 'Talon TSi', 1993);
在这个例子中,car1
是一个新的Car
对象。new Car('Eagle', 'Talon TSi', 1993)
的结果就是:
{make: 'Eagle', model: 'Talon TSi', year: 1993}
表格表示法
操作 | 描述 |
new constructor() | 创建一个新的实例对象 |
this | 在构造函数内部引用新创建的对象 |
返回值 | 如果构造函数返回了一个对象,那么new 表达式的结果就是这个对象;否则结果是this 的新对象 |
相关问题与解答
Q1: 如果我忘记使用new
关键字会发生什么?
A1: 如果你忘记使用new
关键字,JavaScript将会把constructor
函数视为一个普通函数来调用,这意味着内部的this
会被绑定到全局对象上,通常是window
,而不是新创建的对象,这可能会导致全局变量被意外地覆盖,从而引发错误。
Q2:new
操作符可以和任何函数一起使用吗?
A2: 并不是所有的函数都可以作为构造器使用,只有那些专门设计为构造器的函数才应该与new
操作符一起使用,这些函数通常遵循一定的模式,例如它们会通过赋值给this
来添加属性,并且通常会返回this
,如果一个普通函数被误用为构造器,可能会产生不可预见的行为。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/886335.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复