Delete
Операция delete удаляет объект, свойство объекта или элемент массива по специфицированному индексу.
Реализована в
Синтаксис
delete objectName
delete objectName.property
delete objectName[index]
delete property // верно только внутри оператора with
Параметры
objectName |
Имя объекта.
Описание
Четвёртая форма операции верна только внутри оператора with при удалении свойства объекта.
Вы можете использовать операцию delete
для удаления переменных, объявленных неявно, но не переменных, объявленных оператором var.
Если операция delete
выполнена успешно, она устанавливает свойство или элемент в undefined. Операция delete
возвращает true, если операция возможна; возвращает false, если операция невозможна.
x=42
var y= 43
myobj=new Number()
myobj.h=4 // создаёт свойство h
delete x // возвращает true (может удаляться, если объявлена неявно)
delete y //
возвращает false (не может удаляться, если объявлена с помощью var)
delete Math.PI //
возвращает false (предопределённые свойства не могут удаляться)
delete myobj.h //
code>возвращает true (свойства, определённые пользователем, могут удаляться)
delete myobj //
возвращает true (объекты могут удаляться)
Удаление массива элементов.
Если Вы удаляете элемент массива, размер массива не меняется. Например, если удалить a[3], то a[4] останется a[4], а a[3] - undefined.
Если операция delete удаляет элемент массива, этот элемент больше не присутствует в массиве. В следующем примере trees[3] удаляется с помощью delete.
trees=new Array("redwood","bay","cedar","oak","maple")
delete trees[3]
if (3 in trees) {
// это не выполняется
}
Если Вы хотите, чтобы элемент массива существовал, но имел значение undefined, используйте ключевое слово undefined вместо операции delete.
В следующем примере элементу trees[3] присваивается значение undefined, и элемент массива продолжает существовать:
trees=new Array("redwood","bay","cedar","oak","maple")
trees[3]=undefined
if (3 in trees) {
//
это выполняется
}