Пятница, 19.04.2024, 09:24
Приветствую Вас Гость

Меню сайта
Web-программирование
Наш опрос
Какой браузер Вы используете?
Всего ответов: 1422
Статистика

Анализ веб сайтов

delete

Синтаксис

delete expression

Аргументы

expression
выражение, приводимое к ссылке на удаляемый объект

Описание, примеры

Удаляет объект, свойство объекта или элемент массива по указанному индексу.

Значением expression должна являтся ссылка на удаляемое свойство, например:


1delete variableName
2delete objectExpression.property
3delete objectExpression["property"]
4delete array[index]

Если expression не приводится к свойству, оператор delete не делает ничего.

При успешном выполнении оператор delete удаляет свойство из объекта.

При этом delete не меняет прототип объекта, даже если там есть свойство, совпадающее по названию с удаляемым.

Некоторые свойства объектов не могут быть удалены. В спецификации такие свойства обозначены флагом DontDelete.

Можно удалить переменные, объявленные глобально без var, но нельзя - объявленные через var.

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


01x = 42;        // создать свойство глобального объекта window
02var y = 43;    // объявить как переменную
03myobj = new Number()
04myobj.h = 4    // создать свойство h
05myobj.k = 5    // создать свойство k
06 
07delete x       // возвратит true (объявлено без var)
08delete y       // возвратит false (объявлено с var, флаг DontDelete)
09delete Math.PI // возвратит false (встроенный объект, флаг DontDelete)
10delete myobj.h // возвратит true (пользовательское свойство)
11with(myobj) {
12  delete k;    // возвратит true (эквивалент delete myobj.k)
13}
14delete myobj   // возвратит true (аналог delete x)

Вы не можете удалить свойство из объекта, которое он унаследовал от прототипа (хотя вы можете удалить его напрямую из прототипа).


1function Foo(){}
2 Foo.prototype.bar = 42;
3 var foo = new Foo();
4 delete foo.bar;           // ничего не сделает
5 alert(foo.bar);           // введет 42, свойство унаследовано
6 delete Foo.prototype.bar; // удалит из прототипа
7 alert(foo.bar);           // выведет "undefined", свойства больше нет

При удалении элементов массива, его длина не меняется. Даже если вы удалите последний элемент: delete a[a.length-1] - его длина останется той же.

При этом элемент исчезнет из массива:


1arr = ["a", "b", "c"]
2delete arr[1] // удалили b
3 
4alert(arr.length) // 3
5alert(arr[1]) // undefined
6 
7alert(1 in arr) // **false**

Если вы хотите, чтобы элемент остался в массиве, но стал undefined - просто приравняйте его к undefined:

arr[1] = undefined
alert(1 in arr) // **true**
Реклама
Поиск
Друзья сайта
Топ100- Веб-дизайн free counters