概述:new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例(来至mdn)。
描述:new 关键字会进行如下的操作:
- 创建一个空的简单 JavaScript 对象(即 {});
- 为步骤 1 新创建的对象添加属性 proto,将该属性链接至构造函数的原型对象;
- 将步骤 1 新创建的对象作为 this 的上下文;
- 如果该函数没有返回对象,则返回 this。
示例
function Person(age){
this.name = 111
this.age = age
return this;
}
var obj = {};
obj.__proto__ = Person.prototype;
var p1 = Person.call(obj,18)
console.log('p1', typeof p1, p1)