[英]Is it considered bad practice to change the value of __proto__ of an object?
我試圖從教程網站復制這段代碼
let animal = {
eat() {
this.full = true;
}
};
let rabbit = {
__proto__: animal
};
rabbit.eat();
我收到此錯誤“不贊成使用' proto '屬性”。 我做了很多研究,找到了“ 原型 ”的替代方案,但最終我認為這樣做是不好的做法。 這是我的想法:
閱讀所有原因,這是不好的做法在這里 。
警告:根據現代JavaScript引擎如何優化屬性訪問的性質,更改對象的[[Prototype]]在每個瀏覽器和JavaScript引擎中的操作都非常緩慢...
警告:使用Object.prototype時。 如今,大多數瀏覽器都支持proto ,只有ECMAScript 2015規范中才將proto的存在和確切行為標准化為一項遺留功能...
就像您提到自己一樣,它已棄用。 如果您正在學習ES6,那么上課的確是這樣:
class Animal {
eat() {
this.full = true;
}
}
class Rabbit extends Animal {}
const rabbit = new Rabbit();
rabbit.eat();
Rabbit擴展了Animal.prototype
,而Animal.prototype
本身始終擴展了Object.prototype
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.