Прикладной код

Оператор «Delete»

Оператор «Delete»

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

Синтаксис

delete выражение

Параметры

  • выражение — ссылка на свойство объекта.

Описание

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

delete variableName
delete objectExpression.property
delete objectExpression["property"]
delete array[index]

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

Комментарии

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

Оператор delete не может удалить определенные свойства встроенных объектов. В спецификации они имеют флаг DontDelete.

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

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

При удалении элементов массива, длина массива не изменится. Даже если вы удалите последний элемент, его длина останется той же, а элемент исчезнет из массива.

Если вы хотите, чтобы элемент остался в массиве, но стал undefined — используйте значение undefined, вместо оператора delete

arr[1] = undefined alert(1 in arr); // true

Примеры

Удаление свойства из объекта.

var myObj = newObject();
myObj.name = "Fred";
myObj.count = 42;
delete myObj.name;
delete myObj["count"];
alert("name: " + myObj.name);
alert("<br />");
alert("count: " + myObj.count);

Удаление элемента из массива.

var ar = newArray(10, 11, 12, 13, 14);
delete ar[1];
alert("element 1: " + ar[1]);
alert("<br />");
alert("array: " + ar);