这是我的代码:
save: function(){
window.setTimeout(recipeControlsViewModel.saveWOTimeOut(),500);
},
这是我在IE9中的“Internet选项”中选中“显示有关每个脚本错误的通知”选项时仅在IE9中出现的错误。这不会发生在FireFox,Chrome或IE10& IE11。
SCRIPT87: Invalid argument
有人知道为什么会发生这种情况以及如何解决这个问题吗?
答案 0 :(得分:4)
您只需要在匿名函数中包装该函数调用:
save: function(){
window.setTimeout(function() { recipeControlsViewModel.saveWOTimeOut() },500);
},
或者,从IE9转发,您可以使用.bind()
:
save: function(){
window.setTimeout(recipeControlsViewModel.saveWOTimeOut.bind(recipeControlsViewModel) },500);
},
虽然在这种情况下更多的打字。 .bind()
函数返回另一个与您传递的对象“绑定”的函数。这意味着返回的函数将使用参数(“recipeControlsViewModel”)作为this
的值调用原始函数(“saveWOTimeOut”属性引用的函数)。