Object.definePropery для Array.prototype.push не работает - PullRequest
0 голосов
/ 19 октября 2019

Я хочу отключить опцию переопределения на Array.prototype.push в моем веб-приложении.

Я пытался сделать это с Object.defineProperties(Array.prototype, "push", {writable: false});

, но получил Uncaught TypeError: Property description must be an object: p

Что я сделал не так?

Спасибо

1 Ответ

4 голосов
/ 19 октября 2019

Это действительно не очень хорошая идея делать это с прототипом нативного объекта, это имеет некоторые сильные последствия для производительности, как описано здесь

Теперь, когда вы были предупреждены, есличтобы продолжить, просто используйте:

Object.defineProperty(Array.prototype, "push", {writable: false});

Лучшее решение без затрат на производительность - установить для параметра writeable значение false специально для объектов массива, которые вы хотите «защитить».

...