Javascript-Apply()破坏IE 9
我有一个目标:Javascript-Apply()破坏IE 9,javascript,jquery,internet-explorer,internet-explorer-9,Javascript,Jquery,Internet Explorer,Internet Explorer 9,我有一个目标: var _intervals = { intervals: {}, _add: function (fun, interval) { var newInterval = setInterval.apply( window, [fun, interval].concat([].slice.call(arguments, 2)) ); this.intervals[ ne
var _intervals = {
intervals: {},
_add: function (fun, interval) {
var newInterval = setInterval.apply(
window,
[fun, interval].concat([].slice.call(arguments, 2))
);
this.intervals[ newInterval ] = true;
return newInterval;
},
_delete: function (id) {
return clearInterval(this.intervals[id]);
},
_deleteAll: function () {
var all = Object.keys(this.intervals), len = all.length;
while (len-- > 0) {
clearInterval(all.shift());
}
}
};
由于一些奇怪的原因,当我从\u add
属性中删除apply()
函数时,如果我将IE9保留在那里,IE9将停止工作,但属性\u add
需要apply()
才能正常工作
我研究了IE9中的apply()
问题,但找不到任何相关内容
有什么帮助吗
非常感谢IE9不支持通过
setInterval
的参数向回调传递参数
所以这不是apply
的问题,而是setInterval
的问题
您可以使用此选项:
var args = [].slice.call(arguments, 2), newInterval = setInterval(function(){
fun.apply(window, args);
}, interval);