
no-proto
不允許使用 __proto__
屬性
__proto__
屬性已自 ECMAScript 3.1 起棄用,不應在程式碼中使用。請改用 Object.getPrototypeOf
和 Object.setPrototypeOf
。
規則細節
當使用 new
運算子建立物件時,__proto__
會設定為物件建構函式的原始 “prototype” 屬性。Object.getPrototypeOf
是取得物件原型 (prototype) 的建議方法。若要變更物件的原型 (prototype),請使用 Object.setPrototypeOf
。
此規則的不正確程式碼範例
在 Playground 中開啟
/*eslint no-proto: "error"*/
const a = ;
const a1 = ;
= b;
= b;
此規則的正確程式碼範例
在 Playground 中開啟
/*eslint no-proto: "error"*/
const a = Object.getPrototypeOf(obj);
Object.setPrototypeOf(obj, b);
const c = { __proto__: a };
何時不該使用
如果您需要支援實作 __proto__
屬性,但未實作 Object.getPrototypeOf
或 Object.setPrototypeOf
的舊版瀏覽器,您可能會想要關閉此規則。
版本
此規則是在 ESLint v0.0.9 中引入的。
延伸閱讀
