delete はオブジェクトの属性を削除することです。たとえば、オブジェクトの場合、
var obj = {key:5};
delete obj.key はオブジェクトのキー属性を削除します。オブジェクトのプロトタイプ オブジェクトも存在します。この属性は注目に値します。
var A = function(){}; A.prototype.testMe = true; var a = new A(); //覆盖原型属性 a.testMe = true; if(a.testMe){ // 一些关键代码... // .... //删除这属性 delete a.testMe; } //第二段 --------------------------- // 在其它模块中 if(a.testMe){ // 一些关键代码... // .... }
2 番目の段落は注目に値します。a の testMe は削除後に存在しなくなると考えてはいけません。つまり、a.testMe は未定義ですが、実際にはプロトタイプ アクセスを通じてまだ存在します。
注意しないとここで捕まってしまいます。
//Attachment:
プロトタイプチェーンを含む、オブジェクトに特定の属性があるかどうかを検出します:
if ('attrName' in obj)…
オブジェクトがプロトタイプではなくオブジェクト自体に属する特定の属性を持つかどうかを検出しますchain:
obj.hasOwnProperty('attrName')
JavaScript の削除属性の使用に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。