no-proto
禁止使用 __proto__
属性
__proto__
属性自 ECMAScript 3.1 起已被弃用,不应在代码中使用。请改用 Object.getPrototypeOf
和 Object.setPrototypeOf
。
规则详情
当使用 new
运算符创建对象时,__proto__
被设置为对象构造函数的原始 "prototype" 属性。Object.getPrototypeOf
是获取对象原型的首选方法。要更改对象的原型,请使用 Object.setPrototypeOf
。
此规则的错误代码示例:
/*eslint no-proto: "error"*/
var a = obj.__proto__;
var a = obj["__proto__"];
obj.__proto__ = b;
obj["__proto__"] = b;
此规则的正确代码示例:
/*eslint no-proto: "error"*/
var a = Object.getPrototypeOf(obj);
Object.setPrototypeOf(obj, b);
var c = { __proto__: a };
何时不使用
5A5ntk2JXkCDliiLHR0BhoTtwCvpOVdhBY/PgGwLEEq7cfVVJ+EDT3qdbIwZ3udfzvrlJDW7cbaBisY/4yyIZ7YNFMP8lcXsk4aU5CA/yqNCZo74iQxCuzkQvactHkllGAWInYkQpcOSYOEZ99b/k41gXscgXftJmL8fkOolDRZEdK8rRV08lYnTUI3usuawl3mFb7XtxpDqa70CFizONK0cj4ARGILbcaNfTyE6iX3s2sfNz1Bzw3B2OSrtCowWUampQEL97lF0G8XbbhX8cw==