请问如何在以下情况下调用功能c?非常感谢您的建议。
var Foo = function(el){}
Foo.prototype.d = function(){
// I want to call function c here, how can I do??
};
$.fn.a = function(){
return {
b: new Foo(this)
};
};
$.fn.a.prototype.c = function(){ alert(1); }; //function c
$(el).a().b.d() <-reach c...
答案 0 :(得分:1)
您没有使用new关键字构建的a
实例。因此,您必须使用call
或apply
。
Foo.prototype.d = function(){
$.fn.a.prototype.c.apply(this, arguments);
};
这将在c
实例上运行Foo
- 这是你想要的吗?如果您只想在没有特定执行上下文的情况下调用该函数,则可以使用$.fn.a.prototype.c()
。
这可能不是构建它的最好方法 - 如果你想把它称为Foo的成员函数,不要把它添加为$.fn.a
的成员函数。