1.JavaScript new对象的四个过程
new对象:
function Person(name, age) {
this.name = name;
this.age = age;
}
var person = new Person("Alice", 23);
new一个对象的四个过程:
- 创建一个空对象
var obj = new Object();
- 让Person中的this指向obj,并执行Person的函数体
var result = Person.call(obj);
- 设置原型链,将obj的__proto__成员指向了Person函数对象的prototype成员对象
(原型链:JS由对象组成,一个对象就有它的原型对象(proto),原型对象也有它的原型对象,一直到原型链的顶端,这样构成了一个具有链条形状的结构,称之为原型链 __proto__该属性可以被修改,但是无法被删除)
obj.__proto__ = Person.prototype;
- 判断Person的返回值类型,如果是值类型,返回obj。如果是引用类型,就返回这个引用类型的对象。
if (typeof(result) == "object")
person = result;
else
person = obj;
javaScript知识体系(下)- js高级部分知识点串烧-总结:
https://www.cnblogs.com/hongqin/p/5998594.html