JavaScript new对象的四个过程

博客介绍了JavaScript中new对象的四个过程,包括创建空对象、让函数this指向该对象并执行函数体、设置原型链,将对象的__proto__指向函数的prototype,最后根据函数返回值类型决定返回对象。还给出了JavaScript知识体系相关总结链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.JavaScript new对象的四个过程

new对象:

function Person(name, age) {
  this.name = name;
  this.age = age;
}
var person = new Person("Alice", 23);

new一个对象的四个过程:

  1. 创建一个空对象
var obj = new Object();
  1. 让Person中的this指向obj,并执行Person的函数体
var result = Person.call(obj);
  1. 设置原型链,将obj的__proto__成员指向了Person函数对象的prototype成员对象
    (原型链:JS由对象组成,一个对象就有它的原型对象(proto),原型对象也有它的原型对象,一直到原型链的顶端,这样构成了一个具有链条形状的结构,称之为原型链 __proto__该属性可以被修改,但是无法被删除)
obj.__proto__ = Person.prototype;
  1. 判断Person的返回值类型,如果是值类型,返回obj。如果是引用类型,就返回这个引用类型的对象。
if (typeof(result) == "object")
  person = result;
else
  person = obj;

javaScript知识体系(下)- js高级部分知识点串烧-总结:
https://www.cnblogs.com/hongqin/p/5998594.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值