JavaScriptのdeleteの使い方
1510 ワード
もっと読む
1、
var o={}
o.x=new Object();
delete o.x;//前の行のnewのObjectオブジェクトは依然として存在していますが、o.xという属性を削除しただけですので、deleteを立体関数に類似しないでください.
2、
var global=42
delete global;//Global.globalを削除します
3、
すべての属性がdeleteされるわけではない.例えば、prototypeで宣言されている属性はdeleteされません.
1、
var o={}
o.x=new Object();
delete o.x;//前の行のnewのObjectオブジェクトは依然として存在していますが、o.xという属性を削除しただけですので、deleteを立体関数に類似しないでください.
2、
var global=42
delete global;//Global.globalを削除します
3、
すべての属性がdeleteされるわけではない.例えば、prototypeで宣言されている属性はdeleteされません.
function C() { this.x = 42; }
C.prototype.x = 12;
var o = new C();
o.x; // 42, o.x
delete o.x;
o.x; // 12, prototype o.x, delete o.x
オブジェクトの事前定義属性も削除できません.var re = /abc/i;
delete re.ignoreCase;
re.ignoreCase; // true, ignoreCase
varによって宣言された変数とfunctionによって宣言された関数は削除されません.4、
ただし、例外としては、evalで実行されるコードの中で、varで宣言された変数は正常なvar宣言変数と同じGlobalオブジェクトに属していますが、それらは削除されます.var x = 36; delete x; x; // 36, x y = 12; delete y; y; // undefined function foo() { return 42; } delete foo; foo(); // 42
Technoratiタグ:deleteeval("var x = 36;"); x; // 42 delete x;
しかし、これは例外です.エヴァのコードの関数内でvarによって定義された変数は削除できません.x; // undefined
eval("(function() { var x = 42; delete x; return x; })();"); // 42
* delete , true false。 : delete false, true。
, true, 。