最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

你不知道的JavasScript上篇·第五章·原型·下

標(biāo)簽:
JavaScript

5、差异继承

继承意味着复制操作;

差异继承:
基本原则是在描述对象行为时,使用其不同于普遍描述的特制。 (我的理解是只用对象自身的而不用普遍继承的像是toString(),valueOf()这种方法)

6、(原型) 继承

    function Foo(name){
        this.name = name;
    }
    Foo.prototype.myName = function(){
        return this.name
    }
    function Bar(name,label){
        //用call将name混合继承
        Foo.call(this,name);
        this.label = label;
    }
    //真正关联起来
    Bar.prototype = Object.create(Foo.prototype);
    Bar.prototype.myLabel = function(){
        return this.label;
    }
    var a  = new Bar('a','obj a');
    a.myName();//a
    a.myLabel();// obj a

此时Bar.prototype是:
图片描述
Foo.prototype是:
图片描述

这段代码的核心部分就是Bar.prototype = Object.create(Foo.prototype);调用Object.create()会凭空创建一个“新”对象并把新对象内部的[[Prototype]]关联到指定的对象(Foo.prototype)

两种方法可以将Bar.prototype关联到Foo.prototype,上面说的是第一种。
Es6提供了另一种方法: Object.setPrototypeOf(Bar.prototype,Foo.prototype)

7、检查“类”关系

1、instanceof 谁是谁的实例吗?返回结果为true/false

instanceof 回答的是:在a的整条[[Prototype]]链中是否有Foo.prototype指向的对象

    function Foo(){
        ...
    }
    Foo.prototype.blah = ...
    var a = new Foo();
    a instanceof Foo;//true

2、Foo.prototype.isPrototypeOf(a);

isPrototypeOf()回答的是:在a的整条[[Prototype]]链中是否出现过Foo.prototype?

 var b = {};
 var a = {};
 b.isPrototypeOf(a);//false b的原型链中没有出现过a.Prototype

8、对象关联

原型链:如果在对象上没有找到需要的属性或者方法引用,引擎就会继续在[[Prototype]]关联的对象上进行查找,同理,如果后者中也没有找到需要的引用就回继续查找它的[[Prototype]],以此类推。这一系列对象的链接称为“原型链”

创建关联:
上面提到过两种方法:
Object.create()
Object.setPrototype()(Es6新增)
但是Object.create()是es5中新增的,需要做兼容判断:

    if(!Object.create){
        Object.create = function(o){
            function F(){}
            F.prototype = o;
            return new F();
        }
    }
點(diǎn)擊查看更多內(nèi)容
2人點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消