recipeControlsViewModel

recipeControlsViewModel

这是我的代码:

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”属性所引用的函数)。

09-25 19:27