色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript 繼承 案例

林玟書1年前7瀏覽0評論
< p >眾所周知,JavaScript 是一種基于原型繼承的語言,這使得它有著一些獨特的繼承機制。在 JavaScript 中,每個對象都有一個原型(prototype),當我們訪問某個屬性時,JavaScript 引擎會先在對象本身上查找,如果沒有找到則會一直往原型鏈上查找,直到找到為止。< /p >< p >為了更好地了解 JavaScript 繼承機制,我們來看一個案例:

function Animal(name) {
this.name = name;
}
Animal.prototype.sayName = function() {
console.log('My name is ' + this.name);
};
function Cat(name) {
Animal.call(this, name);
}
Cat.prototype = Object.create(Animal.prototype);
Cat.prototype.constructor = Cat;
Cat.prototype.sayMiao = function() {
console.log('Miao~~');
};
< p >在這個案例中,我們定義了一個 Animal 構造函數和一個 Cat 構造函數,Cat 繼承自 Animal。我們可以通過查看原型鏈來更好地理解這個過程:

console.log(Object.getPrototypeOf(Cat.prototype) === Animal.prototype); // true
console.log(Object.getPrototypeOf(Animal.prototype) === Object.prototype); // true
< p >在定義 Cat 構造函數時,我們通過調用 Animal 的 call 方法并且傳入 this 和 name 來繼承 Animal。接著,我們將 Cat 的原型設置為一個新的對象,這個新對象的原型指向 Animal 的原型,從而完成了繼承。在這個過程中,我們需要對 Cat 的構造函數進行修復,否則它會指向 Animal。

< p>接下來,我們定義了一個 Cat 的原型方法 sayMiao。這個方法只有 Cat 擁有,而 Animal 沒有。當我們在一個 Cat 的實例上調用 sayMiao 方法時,JavaScript 引擎會先在實例本身上查找,沒有找到則會往原型鏈上查找,最終在 Cat 的原型上找到并執行。

< p>總結起來,JavaScript 中的繼承需要通過原型鏈來實現,當我們訪問某個屬性或方法時,JavaScript 引擎會先在對象本身上查找,如果沒有找到則會一直往原型鏈上查找,直到找到為止。