js,通过原型调用父函数

时间:2013-02-09 06:56:34

标签: javascript function prototype

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

1 个答案:

答案 0 :(得分:1)

您没有使用new关键字构建的a实例。因此,您必须使用callapply

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

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

这可能不是构建它的最好方法 - 如果你想把它称为Foo的成员函数,不要把它添加为$.fn.a的成员函数。