当前位置: 首页 > 面试题库 >

Arguments.callee已过时-应该改用什么?

华凯捷
2023-03-14
问题内容

对于做类似的事情

setTimeout(function () {
    ...
    setTimeout(arguments.callee, 100);
}, 100);

我需要类似的东西arguments.callee。我在javascript.info中发现了arguments.callee已弃用的信息:

*ECMA-262 *不推荐使用此属性,而应使用 命名函数表达式并获得更好的性能。

但是,应该用什么代替呢? 像这样吗

setTimeout(function myhandler() {
    ...
    setTimeout(myhandler, 100);
}, 100);
// has a big advantage that myhandler cannot be seen here!!! 
// so it doesn't spoil namespace

顺便说一句,arguments.callee跨浏览器兼容吗?


问题答案:

是的,理论上 应该 使用。你是对的。但是,它不能像以往一样在某些版本的Internet Explorer中工作。所以要小心
您可能需要依靠arguments.callee,或者更简单地说:

function callback() {
    // ...
    setTimeout(callback, 100);
}

setTimeout(callback, 100);

在IE上有效。



 类似资料:
  • 问题内容: 使用时收到以下警告: 我应该改用什么? 问题答案: 使用URLEncoder中的其他方法: 第一个参数是要编码的文本。第二个是要使用的字符编码的名称(例如)。例如:

  • 问题内容: 我知道他们两个都禁用了Nagle的算法。 我什么时候应该/不应该使用它们中的每一个? 问题答案: 首先,不是所有人都禁用Nagle的算法。 Nagle的算法用于减少有线中更多的小型网络数据包。该算法是:如果数据小于限制(通常是MSS),请等待直到收到先前发送的数据包的ACK,同时累积用户的数据。然后发送累积的数据。 这将对telnet等应用程序有所帮​​助。但是,在发送流数据时,等待A

  • 问题内容: 在该类中,有两个字符串,和。 有什么不同?我什么时候应该使用另一个? 问题答案: 如果你的意思是和则: 用于在文件路径列表中分隔各个文件路径。考虑在上的环境变量。您使用a分隔文件路径,因此在上将是;。 是或用于拆分到特定文件的路径。例如在上,或

  • 问题内容: 在集成我以前从未使用过的Django应用程序时,我发现了用于定义类中函数的两种不同方式。作者似乎非常有意地使用了它们。第一个是我自己经常使用的: 另一个是我不使用的,主要是因为我不知道何时使用它,以及什么用途: 在Python文档中,装饰器的解释如下: 类方法将类作为隐式第一个参数接收,就像实例方法接收实例一样。 所以我想指的是自己(而不是实例)。我不完全理解为什么会这样,因为我总是可

  • 问题内容: 我已经继承了代码 读为“ HttpClientBuilder的文档似乎很稀疏,只是说: 但是,如果我用该方法替换仍然出现。 如何使用不推荐使用的方法? 问题答案: 不用创建的新实例,而是使用Builder。你会得到一个。 例如用法: 而不是使用,而是使用方法。

  • 问题内容: 我看过各种文章,但我仍然不知道为什么不应该使用它。请让我知道您的想法。 问题答案: 我发现有必要在错误的设计中使用instanceof提示。可以肯定的是,将会出现一个大型,复杂的开关风格的构造。在我看到的其他大多数情况下,我们应该使用多态而不是instanceof。请参阅策略模式。(相关的使用示例) 我唯一需要使用的是实现时。