为了账号安全,请及时绑定邮箱和手机立即绑定

JS剖析 —— 原型链

  • 原型链

  • 访问一个对象的属性时:

    • 先在自身属性中查找,找到返回

    • 如果没有,再沿着proto这条链向上查找,找到返回

    • 如果最终没找到,返回undefined

  • 别名:隐式原型链

  • 作用:查找对象的属性(方法)

  • 构造函数/原型/实体对象的关系(图解)
    var o1=new Object();
    var o2={};


    5acb3c8700013dc501600160.jpg

    image.png

  • 构造函数/原型/实体对象的关系2(图解)
    function Foo(){}


    5acb3c8700013dc501600160.jpg

    image.png

// console.log(Object)//console.log(Object.prototype)console.log(Object.prototype.__proto__)    //输出null
  function Fn() {    this.test1 = function () {      console.log('test1()')
    }
  }  console.log(Fn.prototype);
  Fn.prototype.test2 = function () {    console.log('test2()')
  }  var fn = new Fn()
  fn.test1()
  fn.test2()  console.log(fn.toString())  console.log(fn.test3)  // fn.test3()

5acb3c8700013dc501600160.jpg

原型链分析.png

 /*
 1. 函数的显示原型指向的对象默认是空Object实例对象(但Object不满足)
  */
 console.log(Fn.prototype instanceof Object) // true
 console.log(Object.prototype instanceof Object) // false
 console.log(Function.prototype instanceof Object) // true
 /*
 2. 所有函数都是Function的实例(包含Function)
 */
 console.log(Function.__proto__===Function.prototype) /*
 3. Object的原型对象是原型链尽头
  */
 console.log(Object.prototype.__proto__) // null


点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
12
获赞与收藏
33

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消