我有一个Graph
类,我想把它的原型函数传递给另一个函数。这是类
function Graph(opts) {
this.filled = opts.filled;
this.max = opts.max || 50;
this.min = opts.min || 0;
this.fixed = 60; //px
this.transitionArr = [];
this.timeoutArr = [];
};
Graph.prototype.stopAnimation = function() {
//stop any css3 transition by removing animation properties
this.removeAnimProps();
//stop if there is any timeout
for (var i = 0; i < this.timeoutArr.length; i++) {
clearTimeout(this.timeoutArr[i]);
}
for (var i = 0; i < this.transitionArr.length; i++) {
this.transitionArr[i].stop();
}
};
我正在尝试做的是传递stopAnimation
函数迭代所有对象以停止所有对象中的所有动画:
function iterateOverAll(userFunc){
for (var i = 0; i < GraphArr.length; i++) {
GraphArr[i].userFunc();
}
}
iterateOverAll(Graph.prototype.stopAnimation);
但是,我不知道该怎么做。有什么帮助吗?
答案 0 :(得分:3)
如果你想使用函数作为参数,你可以像这样传递它:
function iterateOverAll(callFunc){
for (var i = 0; i < GraphArr.length; i++) {
callFunc.apply(GraphArr[i],[]);
}
}
iterateOverAll(Graph.prototype.stopAnimation);
这将在所有对象中调用您的函数,但不带任何参数。我认为您可以为任何参数修改此函数。
答案 1 :(得分:0)
如果您已经有一组图表,则无需传递该函数。
function iterateOverAll(){
for (var i = 0; i < GraphArr.length; i++) {
GraphArr[i].stopAnimation();
}
}
iterateOverAll();