0

请问在以下情况下如何调用函数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... 
4

1 回答 1

1

您没有a使用 new 关键字构造的实例。所以你将不得不使用callor apply

Foo.prototype.d = function(){ 
    $.fn.a.prototype.c.apply(this, arguments);
};

这将cFoo实例上运行 - 这是你想要的吗?如果您只想在没有特定执行上下文的情况下调用该函数,您可以使用$.fn.a.prototype.c().

这可能不是构建它的最佳方法 - 如果您想将其称为 Foo 的成员函数,请不要将其添加为$.fn.a.

于 2013-02-09T07:29:06.617 回答