也许这是一个天真的问题,但我不得不要求专家的意见...删除一个属性或将其设置为空?
我经常在指示对象的状态的对象中使用临时属性。其中一个州是何时财产评估为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