Подтвердить что ты не робот

Почему удаление запрещено в строгом режиме Javascript5?

Я новичок в javascript, но я влюблен в него опасно быстрой и свободной выразительностью. Тем не менее, я заметил, что, по-видимому, при работе в режиме "строгого" вы не можете удалять объекты. Я не являюсь огромным поклонником удаления вещей (так как теоретически охват должен позаботиться об этом в любом случае), но мне интересно, в чем была причина отказа от этой функции?

4b9b3361

Ответ 1

Оператор delete по-прежнему разрешен в строгом режиме, но некоторые его использование ошибочно. Это разрешено только для свойств объекта, а не простых имен и только для свойств объекта, которые можно удалить.

Таким образом,

var a = {x: 0};
delete a.x;

отлично, но

delete Object.prototype;

нет, и ни одно из них не является

delete a;

(Последняя фактически является ошибкой на уровне синтаксиса, в то время как попытка удалить свойство undeletable является ошибкой во время выполнения.)