function _new(){
let target = {} // 创建一个空对象
// 第一个参数是构造函数
let [constructor,...args] = [...arguments]
// 执行[[原型]]链接;target是constructor的实例
target.__proto__ = constructor.prototype;
// 执行构造函数,将属性或方法,添加到创建的空对象上
let result = constructor.apply(target,args)
if (result && (typeof (result) == 'object' || typeof (result) == 'function' )){
// 如果构造函数执行的结构,返回的是一个对象,那么返回这个对象
return result
}
// 如果构造函数返回的不是一个对象,就返回创建的新对象
return target
}
【js】创建一个新对象时,发生了什么
最新推荐文章于 2025-03-06 23:30:00 发布