Я новичок в javascript, но я влюблен в него опасно быстрой и свободной выразительностью. Тем не менее, я заметил, что, по-видимому, при работе в режиме "строгого" вы не можете удалять объекты. Я не являюсь огромным поклонником удаления вещей (так как теоретически охват должен позаботиться об этом в любом случае), но мне интересно, в чем была причина отказа от этой функции?
Почему удаление запрещено в строгом режиме Javascript5?
Ответ 1
Оператор delete
по-прежнему разрешен в строгом режиме, но некоторые его использование ошибочно. Это разрешено только для свойств объекта, а не простых имен и только для свойств объекта, которые можно удалить.
Таким образом,
var a = {x: 0};
delete a.x;
отлично, но
delete Object.prototype;
нет, и ни одно из них не является
delete a;
(Последняя фактически является ошибкой на уровне синтаксиса, в то время как попытка удалить свойство undeletable является ошибкой во время выполнения.)