这是我的代码:
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()
函数返回与您传递的对象“绑定”的另一个函数。这意味着返回的函数将使用参数(“ recipeControlsViewModel”)作为this
的值调用原始函数(“ saveWOTimeOut”属性所引用的函数)。