gpt4 book ai didi

javascript - 为什么 window.setTimeout 在 IE9 中抛出异常?

转载 作者:行者123 更新时间:2023-11-29 18:11:36 26 4
gpt4 key购买 nike

这是我的代码:

save: function(){
window.setTimeout(recipeControlsViewModel.saveWOTimeOut(),500);
},

这是我在 IE9 的 Internet 选项中选中“显示有关每个脚本错误的通知”选项时仅在 IE9 中遇到的错误。这不会发生在 FireFox、Chrome 或 IE10 和 IE11 中。

SCRIPT87: Invalid argument

有人知道为什么会发生这种情况以及如何解决这个问题吗?

最佳答案

您只需要将该函数调用包装在一个匿名函数中:

save: function(){
window.setTimeout(function() { recipeControlsViewModel.saveWOTimeOut() },500);
},

或者,从 IE9 开始,您可以使用 .bind():

save: function(){
window.setTimeout(recipeControlsViewModel.saveWOTimeOut.bind(recipeControlsViewModel) },500);
},

虽然在这种情况下更多的是打字。 .bind() 函数返回另一个“绑定(bind)”到您传递给它的对象的函数。这意味着返回的函数将调用原始函数(由您的“saveWOTimeOut”属性引用的函数),并将参数(“recipeControlsViewModel”)作为 this 的值。

关于javascript - 为什么 window.setTimeout 在 IE9 中抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26932435/

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