[js] js中new一个新对象发生了什么

new对象:

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

new一个对象的四个过程:

1、创建一个空对象

var obj = new Object(); 

2、设置原型链,将obj的__proto__成员指向了构造函数Person的prototype

obj.__proto__ = Person.prototype; 

3、让构造函数Person中的this指向obj

var result = Person.call(obj);  

4、判断Person的返回值类型,如果是值类型,返回obj。如果是引用类型,就返回这个引用类型的对象。

if (typeof(result) == "object") 
	person = result;  
else
	person = obj





参考:
js中new一个新对象发生的过程

猜你喜欢

转载自blog.csdn.net/qq_14993591/article/details/121269744