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"*/

const a = obj.__proto__;

const a1 = obj["__proto__"];

obj.__proto__ = b;

obj["__proto__"] = 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.

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

John Resig — Object.getPrototypeOf
johnresig.com

Ресурсы

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

© 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