私はjs 'delete'演算子と少し混乱しています。この場合「削除」はどのようにjavascriptで機能しますか?
例えばvar data = {
list : [a, b, c]
}
var temp = data;
console.log(temp.list[2]); //Result 'c'
console.log(data.list[2]); //Result 'c'
delete temp.list[2];
console.log(temp.list[2]); //Result undefined
console.log(data.list[2]); //Result undefined why?
、 は、私はちょうどのみtemp.list[2]
を削除したが、data.list[2]
も同様に未定義を示しています。
演算子トレースの配列アドレスを '削除'してデータを削除しますか? その理由はdata.list[2]
も未定義ですか? (data.list[2]
には実際のデータではなくアドレスがあるので) 説明があると思います。手伝って頂けますか?
削除とは関係ありません。これは、tempとデータが同じ配列を参照しているという事実と関係しています –
[JavaScriptを使用した値による配列のコピー](https://stackoverflow.com/questions/7486085/copying-array-by-value-in- javascript?rq = 1) 'var temp = data;'が独立したコピーを作成しない理由を確認してください。 – Paul