delete
Аргументы
- expression
- выражение, приводимое к ссылке на удаляемый объект
Описание, примеры
Удаляет объект, свойство объекта или элемент массива по указанному индексу.
Значением expression должна являтся ссылка на удаляемое свойство, например:
2 | delete objectExpression.property |
3 | delete objectExpression[ "property" ] |
Если expression не приводится к свойству, оператор delete не делает ничего.
При успешном выполнении оператор delete удаляет свойство из объекта.
При этом delete не меняет прототип объекта, даже если там есть свойство, совпадающее по названию с удаляемым.
Некоторые свойства объектов не могут быть удалены. В спецификации такие свойства обозначены флагом DontDelete .
Можно удалить переменные, объявленные глобально без var , но нельзя - объявленные через var .
Оператор delete возвращает false только если свойство существует, но не может быть удалено, и true - в любых других случаях.
Вы не можете удалить свойство из объекта, которое он унаследовал от
прототипа (хотя вы можете удалить его напрямую из прототипа).
2 | Foo.prototype.bar = 42; |
6 | delete Foo.prototype.bar; |
При удалении элементов массива, его длина не меняется. Даже если вы удалите последний элемент: delete a[a.length-1] - его длина останется той же.
При этом элемент исчезнет из массива:
Если вы хотите, чтобы элемент остался в массиве, но стал undefined - просто приравняйте его к undefined :
alert(1 in arr)
|