也許這是一個天真的問題,但我不得不要求專家的意見...刪除一個屬性或將其設置爲空?
我經常在指示對象的狀態的對象中使用臨時屬性。其中一個州是何時財產評估爲false
。例如:
// inside some method:
this.timer = setTimeout(function() {
console.log('hello world');
}, 1000);
...
// inside another method:
if (this.timer) {
clearTimeout(this.timer);
this.timer = null;
}
當我清楚我的計時器,我可以分配null
它就像我上面做,或者我可以從對象中刪除:
delete this.timer;
我不知道哪條路是優選的。刪除屬性而不是將其設置爲null
有什麼缺點?
編輯:
當然我知道,當我刪除屬性,該屬性將消失,當我把它設置爲null
或undefined
它仍然存在。問題在於,在上述情況下刪除財產是一種公認的做法。我想不是因爲它更慢...
:
您可以使用此檢查。刪除可能是一個矯枉過正的問題。 null可能是更好的選擇,因爲你可能會重新使用屬性。你不必每次都重新創建屬性。 – 2014-09-24 07:23:32
這取決於,如果你打算以後使用'timer'屬性的話。如果沒有,您也可以刪除它。如果你要分配一個新的定時器,或者你需要檢查'timer'是否存在,那麼最好將它設置爲'null'。 – Teemu 2014-09-24 07:31:29