原型链整理

image.png

总结:

  1. new的本质
  2. 指向总结
    • Object.__ proto __ === Function.prototype // true
    • Object.prototype.__ proto __ === null // true
    • Function.prototype.__ proto __ === Object.prototype // true
    • 所有内置对象都是Function对象的实例,Function的__ proto __ 指向的是Function.prototype
  • 属性的查找是先找自身属性,如果没有找到,沿着__ proto __属性向上查找,直到null。
  1. 实现一个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
    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。