我有一个目标:
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());
}
}
};由于一些奇怪的原因,当我将apply()函数从_add属性IE9中移除时,如果我把它放在那里,IE9就会停止工作,但是属性_add需要按照设想的那样工作。
我研究了apply()在IE9中的问题,但找不到任何相关的内容。
有什么帮助吗?
非常感谢
发布于 2015-05-21 14:06:38
IE9不支持通过setInterval的参数将参数传递给回调。
所以这不是apply的问题,而是setInterval的问题。
你可以用这个代替:
var args = [].slice.call(arguments, 2), newInterval = setInterval(function(){
fun.apply(window, args);
}, interval);https://stackoverflow.com/questions/30375908
复制相似问题