Ядро JavaScript 1.5. Справочник

       

Delete


Операция delete удаляет объект, свойство объекта или элемент массива по специфицированному индексу.

Реализована вJavaScript 1.2, NES 3.0

Версия ECMAECMA-262


Синтаксис

delete objectName
delete objectName.property

delete objectName[index]

delete property // верно только внутри оператора with


Параметры

objectName

Имя объекта.

propertyУдаляемое свойство.

indexЦелое число, представляющее индекс массива для удаления.


Описание

Четвёртая форма операции верна только внутри оператора 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) {

   //

это выполняется

}


 



Содержание раздела