通過屬性複製實現繼承

2022-09-10 14:57:18 字數 985 閱讀 3738

淺複製,如果屬性是物件或者陣列的時候,可能會導致以外

function

extend(parent, child) ;

for (i in

parent)

}return

child;

}var dad = ;

var kid =extend(dad);

console.log(kid.name);

//jie

var dad =

}var kid =extend(dad);

//處理陣列和物件的之後,這種淺複製可能導致意外發生

kid.counts.push(4);

kid.reads.***** = false

;console.log(dad.counts);

//[ 1, 2, 3, 4 ]

console.log(dad.reads); //

深度複製,解決複製物件或者陣列出現的問題。

//

深度複製實現,利用了遞迴方法

function

extenddeep(parent, child) ;

for (i in

parent) ;

extenddeep(parent[i], child[i]);

} else}}

return

child;

}var dad =

};var kid =extenddeep(dad);

kid.counts.push(4);

console.log(kid.counts);

//[ 1, 2, 3, 4 ]

console.log(dad.counts); //

[ 1, 2, 3 ]

console.log(dad.reads === kid.reads); //

false

原型鏈與繼承(五)複製實現繼承

通過複製物件的方式也是實現繼承的一種方式,在jquery和其他的庫中都能看到這種實現。下面簡單講下原理,具體的完整實現可參考jquery原始碼 一 淺拷貝 function extend parent,child for var prop in parent var person var stude...

C 通過介面實現多重繼承

using system using system.collections.generic using system.text 通過介面實現多重繼承 namespace inte cedemo public bool ismale inte ce teacher 定義介面 inte ce docto...

JS通過原型實現多重繼承

宣告乙個動物型別 function animal 為動物類建立乙個aname屬性 animal.prototype.aname 動物 為動物類建立乙個吼叫的方法 animal.prototype.howl function word console.log 我是 this.aname 我想說 wor...