javascript原型链及继续的明白

原型链及继承的明白

定义函数

function A(name) {
    // 组织内容(组织函数)
    this.name = name;
    
    /*
    // 也支撑定义要领。但为了机能,不发起在组织里定义要领
    this.fn = function(parmas){
        // your code
    }
    */
}
// 原型链
A.prototype.changeName = function(name) {
    this.name = name;
}
// 静态属性
A.staticPF = 'static12345';

继承

继承组织函数

function B(name) {
    // B 继承 A 的组织函数  也可用apply
    A.call(this, name);
}
// console.log(B)

var b = new B('ccc');
console.log(b.name); // => ccc

继承静态属性

// B 继承 A 的静态属性,查找流程以下
// 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实例终究继承了A的changeName要领
console.log(b.name); // => ddd
    原文作者:Guoye
    原文地址: https://segmentfault.com/a/1190000018748993
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞