javascript原型鏈及繼承的理解

javascript:void(null)# 原型鏈及繼承的理解

定義函數(shù)
function A(name) {
    // 構(gòu)造內(nèi)容(構(gòu)造函數(shù))
    this.name = name;
    
    /*
    // 也支持定義方法。但為了性能,不建議在構(gòu)造里定義方法
    this.fn = function(parmas){
        // your code
    }
    */
}
// 原型鏈
A.prototype.changeName = function(name) {
    this.name = name;
}
// 靜態(tài)屬性
A.staticPF = 'static12345';
繼承
繼承構(gòu)造函數(shù)
function B(name) {
    // B 繼承 A 的構(gòu)造函數(shù)  也可用apply
    A.call(this, name);
}
// console.log(B)

var b = new B('ccc');
console.log(b.name); // => ccc
繼承靜態(tài)屬性
// B 繼承 A 的靜態(tài)屬性,查找流程如下
// B.staticPF = >B.__proto__.staticPF => A.staticPF;
B.__proto__ = A;
console.log(B.staticPF); // => static12345
繼承原型鏈
var b = new B('ccc');
// B 繼承 A 的原型鏈, 3種方式,推薦第3種
// B.prototype = A.prototype; // 需要前置在b對象實例化前
// b.__proto__ = A.prototype;
// B.prototype.__proto__ = A.prototype;
B.prototype.__proto__ = A.prototype;

b.changeName('ddd') // b實例最終繼續(xù)了A的changeName方法
console.log(b.name); // => ddd
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 理解 javascript 的原型鏈及繼承 以上所有的運行結(jié)果都是 true; 三種構(gòu)造對象的方法: 通過對象字面...
    你期待的花開閱讀 1,674評論 0 3
  • 原型鏈是一種機制,指的是 JavaScript 每個對象都有一個內(nèi)置的 __proto__ 屬性指向創(chuàng)建它的構(gòu)造函...
    劼哥stone閱讀 4,577評論 15 80
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,900評論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,724評論 19 139
  • 簡單來說,想要甩掉腹部贅肉,你需要做有氧運動、全身運動和特定部位運動。要知道,局部減肥是不太可能的,但局部塑形卻是...
    仙貝君閱讀 2,432評論 6 62

友情鏈接更多精彩內(nèi)容