亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

JavaScript面向?qū)ο缶幊?繼承(四)

MartinHan / 3259人閱讀

摘要:一些面向?qū)ο笳Z(yǔ)言中支持多繼承,在也能實(shí)現(xiàn)多繼承,但是有一些局限,因?yàn)樵谥欣^承是依賴(lài)原型鏈實(shí)現(xiàn)的,只有一條原型鏈,所以理論上是不能繼承多個(gè)父類(lèi)的。從第一個(gè)參數(shù)起為被繼承的對(duì)象獲取參數(shù)長(zhǎng)度緩存參數(shù)對(duì)象緩存當(dāng)前對(duì)象遍歷被繼承對(duì)象中的屬性

一些面向?qū)ο笳Z(yǔ)言中支持多繼承,在JavaScript也能實(shí)現(xiàn)多繼承,但是有一些局限,因?yàn)樵贘avaScript中繼承是依賴(lài)原型prototype鏈實(shí)現(xiàn)的,只有一條原型鏈,所以理論上是不能繼承多個(gè)父類(lèi)的。但是JavaScript很靈活,通過(guò)一些技巧方法可以繼承多個(gè)對(duì)象的屬性來(lái)實(shí)現(xiàn)類(lèi)似的多繼承。

單繼承

繼承單對(duì)象的extend方法:

//單繼承  屬性復(fù)制
var extend = function (target,source) {
    //遍歷源對(duì)象中的屬性
    for(var property in source){
        //將源對(duì)象中的屬性復(fù)制到目標(biāo)對(duì)象中
        target[property] = source[property];
    }
    //返回目標(biāo)對(duì)象
    return target;
};

單繼承的測(cè)試代碼

//測(cè)試代碼
var book ={
    name:"javascript",
    alike:["css","html5","js"]
}
var anotherBook = {
    color :"blue"
}
extend(anotherBook,book);
console.log(anotherBook.name);//javascript
console.log(anotherBook.alike);//[ "css", "html5", "js" ]
anotherBook.alike.push("ajax");
anotherBook.name = "設(shè)計(jì)模式";
console.log(anotherBook.name);//設(shè)計(jì)模式
console.log(anotherBook.alike);//[ "css", "html5", "js", "ajax" ]
console.log(book.name);//javascript
console.log(book.alike);//[ "css", "html5", "js", "ajax" ]

上面的方法可以實(shí)現(xiàn)對(duì)一個(gè)對(duì)象屬性的復(fù)制繼承,當(dāng)傳遞多個(gè)對(duì)象時(shí),即可實(shí)現(xiàn)多繼承。

多繼承
//多繼承  屬性復(fù)制
var mix = function () {
    var i =1,//從第二個(gè)參數(shù)起為被繼承的對(duì)象
        len =arguments.length,//獲取參數(shù)長(zhǎng)度
        target = arguments[0], //第一個(gè)對(duì)象為目標(biāo)對(duì)象
        arg;//緩存參數(shù)對(duì)象
    for(;i

mix方法的作用是將傳入的多個(gè)對(duì)象的屬性復(fù)制到源對(duì)象中,這樣即可實(shí)現(xiàn)對(duì)多個(gè)對(duì)象的屬性的繼承。另外當(dāng)使用的時(shí)候需要傳入目標(biāo)對(duì)象(第一個(gè)參數(shù)-需要繼承的對(duì)象)時(shí),可以將它綁定到原生對(duì)象Object上,這樣所有的對(duì)象都可以擁有這個(gè)方法。這樣就可以在對(duì)象上直接調(diào)用。

Object.property.mix = function () {
    var i=0,//從第一個(gè)參數(shù)起為被繼承的對(duì)象
        len =arguments.length,//獲取參數(shù)長(zhǎng)度
        arg;//緩存參數(shù)對(duì)象
    for(;i           
               
                                           
                       
                 

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/108535.html

相關(guān)文章

  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對(duì)象”還好嗎?

    摘要:很多情況下,通常一個(gè)人類(lèi),即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類(lèi)是相似對(duì)象的描述,稱(chēng)為類(lèi)的定義,是該類(lèi)對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過(guò)對(duì)類(lèi)的實(shí)體化形成的對(duì)象。一類(lèi)的對(duì)象抽取出來(lái)。注意中,對(duì)象一定是通過(guò)類(lèi)的實(shí)例化來(lái)的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    李昌杰 評(píng)論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對(duì)象”還好嗎?

    摘要:很多情況下,通常一個(gè)人類(lèi),即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類(lèi)是相似對(duì)象的描述,稱(chēng)為類(lèi)的定義,是該類(lèi)對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過(guò)對(duì)類(lèi)的實(shí)體化形成的對(duì)象。一類(lèi)的對(duì)象抽取出來(lái)。注意中,對(duì)象一定是通過(guò)類(lèi)的實(shí)例化來(lái)的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    Lyux 評(píng)論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對(duì)象”還好嗎?

    摘要:很多情況下,通常一個(gè)人類(lèi),即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類(lèi)是相似對(duì)象的描述,稱(chēng)為類(lèi)的定義,是該類(lèi)對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過(guò)對(duì)類(lèi)的實(shí)體化形成的對(duì)象。一類(lèi)的對(duì)象抽取出來(lái)。注意中,對(duì)象一定是通過(guò)類(lèi)的實(shí)例化來(lái)的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    AaronYuan 評(píng)論0 收藏0
  • Javascript面向對(duì)象編程(三):非構(gòu)造函數(shù)的繼承

    摘要:原文鏈接一什么是非構(gòu)造函數(shù)的繼承比如,現(xiàn)在有一個(gè)對(duì)象,叫做中國(guó)人。通過(guò)函數(shù),繼承了。中國(guó)北京上海香港廈門(mén)北京上海香港廈門(mén)北京上海香港這時(shí),父對(duì)象就不會(huì)受到影響了。目前,庫(kù)使用的就是這種繼承方法。 原文鏈接 一、什么是非構(gòu)造函數(shù)的繼承? 比如,現(xiàn)在有一個(gè)對(duì)象,叫做中國(guó)人。 var Chinese = { nation: 中國(guó) } 還有一個(gè)對(duì)象,叫做醫(yī)生。 var Doctor = {...

    jaysun 評(píng)論0 收藏0
  • JavaScript中的面向對(duì)象(object-oriented)編程

    摘要:對(duì)象在中,除了數(shù)字字符串布爾值這幾個(gè)簡(jiǎn)單類(lèi)型外,其他的都是對(duì)象。那么在函數(shù)對(duì)象中,這兩個(gè)屬性的有什么區(qū)別呢表示該函數(shù)對(duì)象的原型表示使用來(lái)執(zhí)行該函數(shù)時(shí)這種函數(shù)一般成為構(gòu)造函數(shù),后面會(huì)講解,新創(chuàng)建的對(duì)象的原型。這時(shí)的函數(shù)通常稱(chēng)為構(gòu)造函數(shù)。。 本文原發(fā)于我的個(gè)人博客,經(jīng)多次修改后發(fā)到sf上。本文仍在不斷修改中,最新版請(qǐng)?jiān)L問(wèn)個(gè)人博客。 最近工作一直在用nodejs做開(kāi)發(fā),有了nodejs,...

    JerryZou 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<