详解JavaScript中的关键字new

Javascript中new对象的过程:

// 创建构造函数
function People(name){
  this.name = name;
}
 
// 使用new创建实例对象person
var zxx = new People("ZXX");
zxx = {
  name: 'zxx'
}

代码执行过程

var obj = {} 或者 var obj = new Object();  // 创建一个空对象;
obj.__proto__ = People.prototype;          // 将该隐式原型原型指向构造函数显式原型
People.call(obj, "ZXX");                          // 将构造函数中this指向创建的obj对象,并传入参数"ZXX"
return obj      // 返回obj对象,person指向创建的obj对象(对象类型赋值为按引用传递,obj与person指向同一个对象)

1.创建一个空的Object对象.var obj = new Object();

2.将构造函数Person中this指向刚创建的obj对象

obj->Person.prototype->Object.prototype->null

3.将创建的obj的__proto__指向构造函数Person的prototype。这一步是建立对象和原型直接的对应关系。通过对象的__proto__属性能够访问到原型,IE下则没有暴露出相应的属性。

4.执行构造函数Person()中的代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值