gpt4 book ai didi

javascript - 删除属性或将其设置为空?

转载 作者:行者123 更新时间:2023-11-30 17:16:38 25 4
gpt4 key购买 nike

也许这是一个幼稚的问题,但我必须征求专家的意见......

我经常在对象中使用临时属性来指示对象的状态。其中一种状态是属性评估为 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 有什么缺点?

编辑:

我当然意识到,当我删除一个属性时,该属性就会消失,而当我将它设置为 nullundefined 时,它仍然存在。问题是在上述情况下删除属性是否是一种公认​​的做法。我想不是因为它比较慢......

最佳答案

删除属性会删除属性,而将其设置为 null 会使它……null。两者在概念上是不同的:

  • 通过删除该属性,您推断计时器不再存在
  • 将其设置为 null 会推断计时器不再具有值,但仍然存在。

关于javascript - 删除属性或将其设置为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26010863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com