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