mozilla

Compare Revisions

delete operator

Change Revisions

Revision 32648:

Revision 32648 by SpoilSpot on

Revision 32649:

Revision 32649 by SpoilSpot on

Title:
delete
delete
Slug:
JavaScript/Reference/Operators/delete
JavaScript/Reference/Operators/delete
Tags:
JavaScript, delete, Array, Object, Operators
JavaScript, delete, Array, Object, Operators
Content:

Revision 32648
Revision 32649
n91      If the <code>delete</code> operator succeeds, it sets the pn91      If the <code>delete</code> operator succeeds, it removes th
>roperty or element to <code>undefined</code>. The <code>delete</c>e property from the object entirely, although this might reveal a
>ode> operator returns true if the operation is possible; it retur> similarly named property on a prototype of the object.
>ns false if the operation is not possible. 
92    </p>
93    <p>
94      Some object properties cannot be deleted. In the ECMA 262 s
 >pecification these are marked as <i>DontDelete</i>.
95    </p>
96    <p>
97      The <code>delete</code> operator returns false only if the 
 >property exists and cannot be deleted. It returns true in all oth
 >er cases.
n94x=42n100x = 42;        // assigns as property of global object
95var y= 43101var y = 43;    // declares as variable
96myobj=new Number()102myobj = new Number()
97myobj.h=4      // create property h103myobj.h = 4    // create property h
104myobj.k = 5    // create property k
105 
n99delete y       // returns false (cannot delete if declared with vn107delete y       // returns false (cannot delete if declared with v
>ar)>ar, property is DontDelete)
100delete Math.PI // returns false (cannot delete predefined propert108delete Math.PI // returns false (cannot delete most predefined pr
>ies)>operties, declared DontDelete)
n102delete myobj   // returns true (can delete objects)n110with(myobj) { 
111  delete k;    // returns true (equivalent to delete myobj.k)
112
113delete myobj   // returns true (can delete if declared implicitly
 >, equivalent to x)
114</pre>
115    <p>
116      You cannot delete a property on an object that it inherits 
 >from a prototype (although you can delete it directly on the prot
 >otype).
117    </p>
118    <pre>
119 function Foo(){}
120 Foo.prototype.bar = 42;
121 var foo = new Foo();
122 delete foo.bar;           // but doesn't do anything
123 alert(foo.bar);           // alerts 42, property inherited
124 delete Foo.prototype.bar; // deletes property on prototype
125 alert(foo.bar);           // alerts "undefined", property no lon
 >ger inherited
t108      When you delete an array element, the array length is not at131      When you delete an array element, the array length is not a
>ffected. For example, if you delete a{{mediawiki.external(3)}}, a>ffected. For example, if you delete a{{mediawiki.external(3)}}, a
>{{mediawiki.external(4)}} is still a{{mediawiki.external(4)}} and>{{mediawiki.external(4)}} is still a{{mediawiki.external(4)}} and
> a{{mediawiki.external(3)}} is undefined.> a{{mediawiki.external(3)}} is undefined. This holds even if you 
 >delete the last element of the array (<code>delete a{{mediawiki.e
 >xternal('a.length-1')}}</code>).

Back to History