3

例: ここでは、var を使用して変数を宣言し、それを削除しようとして失敗しました。

var derp = "foo";        
\> "foo"    
derp;    
\> "foo"    
this.derp;    
\> "foo"    
delete derp;    
\> false    
derp;    
\> "foo"   

ただし、var を使用せずに変数を作成すると、正常に削除できます。

perd = "boo";    
\> "boo"    
this.perd;    
\> "boo"    
delete perd;    
\> true    
perd;    
\> undefined  

誰でも私のためにこの動作を説明できますか? なんらかの理由があるに違いありません。

4

1 に答える 1

7

オペレーターはdelete変数を削除しません。オブジェクトからプロパティのみを削除します。

キーワードで宣言せずに生の識別子を使用するとvar、それは変数ではなく、グローバル変数のプロパティになります (通常windowはブラウザーで)。削除できるのはそのためです。

deleteおそらくあなたが知りたいと思うオペレーターに関するより多くの情報は、ここで入手できます。

于 2013-02-27T04:26:28.307 に答える