js建構函式的繼承

deeply發表於2021-09-09

函式之間的繼承
function parent(x) {
    this.x = x;
}
parent.prototype.name = 'dili';
parent.prototype.age =40;

function child(x) {
    parent.call(this, x); //繼承屬性
}
child.prototype.age = 23 

// child原型物件指向parent的例項化物件
child.prototype = Object.create(parent.prototype);
// child原型建構函式指向child
child.prototype.constructor = child;

const fn = new child('x');
console.log(fn.name, fn.age) // 'dili',23

使用以上方法可以實現多層函式的繼承,但並不影響建構函式的指向。

fn.__proto__ === child.prototype;

//child.__proto__ === Function.prototype
child.prototype.__proto__ === parent.prototype

//parent.__proto__ === Function.prototype
parent.prototype.__proto__ == Object.prototype

//Function.__proto__ === Function.prototype
//Function.prototype.__protope === Object.prototype

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1978/viewspace-2804314/,如需轉載,請註明出處,否則將追究法律責任。

相關文章