Spec-Zone.ru › ESLint

no-proto

Запретить использование свойства __proto__

Свойство __proto__ устарело с ECMAScript 3.1 и не должно использоваться в коде. Используйте Object.getPrototypeOf и Object.setPrototypeOf вместо него.

Подробное описание правила

Когда объект создается с помощью оператора new, свойство __proto__ устанавливается в исходное свойство «prototype» конструктора функции объекта. Object.getPrototypeOf — это предпочтительный способ получения прототипа объекта. Для изменения прототипа объекта используйте Object.setPrototypeOf.

Примеры неправильного кода для этого правила:

Открыть в Playground
/*eslint no-proto: "error"*/

var a = obj.__proto__;

var a = obj["__proto__"];

obj.__proto__ = b;

obj["__proto__"] = b;

Примеры правильного кода для этого правила:

Открыть в Playground
/*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.

Дополнительные материалы

John Resig - Object.getPrototypeOf

Источники

  • Исходный код правила
  • Исходный код тестов

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-proto

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API