call繼承是在子類中把父類當做普通的函數去執行,讓父類的this指向子類的實例,相當於給子類設置了很多私有的屬性和方法。
特點:1、只能繼承私有的屬性和方法(因爲只是將父類當做普通的函數去執行,並沒有動原型鏈上的屬性)
2、父類私有的變爲子類私有的。
<script>
// call繼承是子類中把父類當做普通的方法執行,讓父類中的this指向子類的實例,
// 相當於給子類的實例設置了很多私有的屬性和方法
// 特點:1、只能繼承私有的屬性和方法(因爲是將父類當做普通的函數執行,和原型上的屬性沒有任何關係)
// 2、父類私有的變爲子類私有的。
function A(x) {
this.x = x
}
A.prototype.getX = function () {
console.log(this.x)
}
function B(y) {
A.call(this,100)
this.y = y
}
A.prototype.getY = function () {
console.log(this.y)
}
var b = new B(1000);
console.log(b.y);
console.log(b.x)
</script>