美文网首页
原型以及原型链

原型以及原型链

作者: Hunter_Gu | 来源:发表于2017-01-26 18:17 被阅读19次

    原型是 JS 中比较抽象的一个部分,下面通过尽可能多的图来解释这一点。

    • 首先明确一点,JS 中所有的函数 fn 都有 prototype 属性(显式原型),fn.prototype 指向该函数的原型。

    • 另外,所有对象 obj 都有 [[prototype]] 属性(隐式属性),很多浏览器将其命名为 proto ,obj.proto 它指向构造函数中的 prototype 属性。

    var obj = {
        'name': 'hunter'
      };
    console.log(obj.__proto__);//指向 Object.prototype
    function F(name){
      this.name = name;
    }
    F.prototype.sayName = function(){
      console.log(this.name);
    };
    var f1 = new F('Hunter');
    f1.sayName();//通过原型链 f1.__proto__  找到 F.prototype 对象中的 sayName 属性
    console.log(f1.__proto__);//指向 F.prototype
    

    所以,通过图可以知道,构造函数 F 新建的实例可以通过原型链来继承Object.prototype 中的一些方法,这使得我们的实例对象功能更强大。

    相关文章

      网友评论

          本文标题:原型以及原型链

          本文链接:https://www.haomeiwen.com/subject/yboxittx.html