189 8069 5689

js原型继承-创新互联

function对象结构(Persion)
    Persion{
        eat:f()
        __proto__:Object{
           constructor:
        }
 }
_proto__ 属性,它是对象所独有的
__proto__属性都是由一个对象指向一个对象,即指向它们的原型对象
它的作用就是当访问一个对象的属性时,如果该对象内部不存在这个属性,
那么就会去它的__proto__属性所指向的那个对象里找,如果父对象也不存在这个属性,
则继续往父对象的__proto__属性所指向的那个对象里找,如果还没找到,
则继续往上找…直到原型链顶端null,此时若还没找到,则返回undefined
prototype属性 它是函数所独有的,它是从一个函数指向一个对象。它的含义是函数的原型对象,
也就是这个函数(其实所有函数都可以作为构造函数)所创建的实例的原型对象
prototype属性 作用就是包含可以由特定类型的所有实例共享的属性和方法,
也就是让该函数所实例化的对象们都可以找到公用的属性和方法。任何函数在创建的时候,
其实会默认同时创建该函数的prototype对象

p.proto === Persion.prototype,它们两个完全一样

成都创新互联主要从事成都网站设计、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务平江,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220
总结:
1、我们需要牢记两点:①__proto__和constructor属性是对象所独有的;
  ② prototype属性是函数所独有的,因为函数也是一种对象,所以函数也拥有__proto__和constructor属性。

 2、__proto__属性的作用就是当访问一个对象的属性时,如果该对象内部不存在这个属性,
    那么就会去它的__proto__属性所指向的那个对象(父对象)里找,一直找,直到__proto__属性的终点null,
    然后返回undefined,通过__proto__属性将对象连接起来的这条链路即我们所谓的原型链。

 3、prototype属性的作用就是让该函数所实例化的对象们都可以找到公用的属性和方法,
    即p.__proto__ === Persion.prototype。

 4、constructor属性的含义就是指向该对象的构造函数,所有函数(此时看成对象了)最终的构造函数都指向Function
 代码:
 //function继承
function inherits(Child, Parent) {
    var F = function() { };
    F.prototype = Parent.prototype;
    Child.prototype = new F();//修改子类prototype指向
    //任何一个prototype对象都有一个constructor属性,指向它的构造函数
    //由于修改了child prototype为F则对应的constructor会指向F的prototype的constructor(也就指向了Parent的构造函数了),
    //所以要对应设置一个prototype的contructor
    Child.prototype.constructor = Child;
    Child.super = Parent.prototype;//设置super属性,方便调用父类的prototype方法
}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享文章:js原型继承-创新互联
本文链接:http://jkwzsj.com/article/coocos.html

其他资讯