多肉建设网站前的市场分析,三只松鼠网站怎样做,在线旅游攻略网站建设方案,wap网站推广方法背景#xff1a;一个笔试题简答谈到new操作符都干了什么#xff1f;连续两次遇到#xff0c;总结一下#xff0c;不然不会的还是不会 new 共经过了4个阶段:1.创建一个空对象
let obj new Object();2.链接到原型
把 obj 的proto 指向构造函数Func的原型对象 prototype一个笔试题简答谈到new操作符都干了什么连续两次遇到总结一下不然不会的还是不会 new 共经过了4个阶段:1.创建一个空对象
let obj new Object();2.链接到原型
把 obj 的proto 指向构造函数Func的原型对象 prototype此时便建立了 obj 对象的原型链 obj-Func.prototype-Object.prototype-null 代码为
obj.__proto__ Func.prototype;3.绑定this值让Func中的this指向obj并执行Func的函数体。
let result Func.call(obj);4.返回新对象 判断Func的返回值类型 如果无返回值 或者 返回一个非对象值则将 obj 作为新对象返回否则会将 result 作为新对象返回。
if (typeof(result) object){funcresult;
}
else{funcobj;
}