
image.png
总结:
- new的本质
- 指向总结
- Object.__ proto __ === Function.prototype // true
- Object.prototype.__ proto __ === null // true
- Function.prototype.__ proto __ === Object.prototype // true
- 所有内置对象都是Function对象的实例,Function的__ proto __ 指向的是Function.prototype
- 属性的查找是先找自身属性,如果没有找到,沿着__ proto __属性向上查找,直到null。
-
实现一个new/instanceof
function new () {
let obj = {}
let con = [].shift.call(arguments)
obj.__ proto __ = con.prototype
let reuslt = con.apply(obj, arguments)
return result instanceof Object ? result : obj
}function instanceof (left, right) {
while(left) {
if (left.__ proto __ === right.prototype) {
return
}
}
return false
}