JavaScript プロパティやオブジェクトを削除する
オブジェクトを削除するには「null」を代入します。プロパティを削除するには「delete」演算子を使います。ただし、「delete」演算子でどんなプロパティでも削除できるわけではありません。自身が持つプロパティのみ削除でき、プロトタイプチェーンをたどって返されたプロパティは削除できません。また、delete演算子ではvar宣言した変数を削除することはできません。
<body>
<script>
window.addEventListener("load" , function(){
var ele = document.getElementsByTagName("output");
//オブジェクトを作成
var myObj = { x:1, y:2, z:99};
//内容表示
for(var i in myObj){ele[0].innerHTML += i + " = " + myObj[i]+"<br>";}
delete myObj.z; //zプロパティだけ削除
for(var i in myObj){ele[1].innerHTML += i + " = " + myObj[i]+"<br>";}
myObj = null; //オブジェクト削除
for(var i in myObj){ele[2].innerHTML += i + " = " + myObj[i]+"<br>";}
//オブジェクトを新たに作成
var tempObj = function(){ this.zz = 123; };
tempObj.prototype.z = 3;
var myObj = new tempObj();
//内容表示
for(var i in myObj){ele[3].innerHTML += i + " = " + myObj[i]+"<br>";}
//z,zzプロパティを削除。自分自身のプロパティであるzzしか削除できない
delete myObj.z;
delete myObj.zz;
for(var i in myObj){ele[4].innerHTML += i + " = " + myObj[i]+"<br>";}
}, false);
</script>
<output></output><hr>
<output></output><hr>
<output></output><hr>
<output></output><hr>
<output></output><hr>
</body>
作成したオブジェクトの内容と削除後の内容が表示されます。削除されたオブジェクトの内容は表示されません。