如何传递原型函数并在javascript中使用
我有一个如何传递原型函数并在javascript中使用,javascript,parameter-passing,prototype,function-parameter,Javascript,Parameter Passing,Prototype,Function Parameter,我有一个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.
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();
}
};
然而,我不知道该怎么办。有什么帮助吗?如果您已经有一组图形,则无需传递该函数
function iterateOverAll(){
for (var i = 0; i < GraphArr.length; i++) {
GraphArr[i].stopAnimation();
}
}
iterateOverAll();
function iterateOverAll(){
对于(变量i=0;i
如果要将函数用作参数,可以按如下方式传递:
function iterateOverAll(callFunc){
for (var i = 0; i < GraphArr.length; i++) {
callFunc.apply(GraphArr[i],[]);
}
}
iterateOverAll(Graph.prototype.stopAnimation);
函数整体迭代(callFunc){
对于(变量i=0;i
这将跨所有对象调用函数,但不带任何参数。我想你可以为任何参数修改这个函数。我知道,但我有很多函数,比如
stopAnimation
。例如,startAnimation
,resetAnimation
,resetGraph
。因此,我需要用一般的方法来做。谢谢。我不知道apply有这个功能。
function iterateOverAll(callFunc){
for (var i = 0; i < GraphArr.length; i++) {
callFunc.apply(GraphArr[i],[]);
}
}
iterateOverAll(Graph.prototype.stopAnimation);