如何在另一个原型中创建可调用的原型方法

时间:2015-02-13 05:04:46

标签: javascript prototype

我正在尝试在对象原型中构建一个小型函数库。我以前只是将我的帮助函数作为全局函数抛出,但是我试图迁移到更自包含的东西。

无论如何,我的proto包装器看起来像这样;

Q.fn = jHelper.prototype = {

    // helper functions
    addClass: function() {}, //...
    removeClass: function() {}, //...  
    // etc..

    // I want to add a child prototype method here that can be called
    Parent: function() {
        child: function(args) {
           console.log(args);
        }
    }

}

Q.Parent.child("test");

问题在于我无法调用" Parent"内的功能。如何设置它以便我可以添加子函数作为" Parent"?

的原型

1 个答案:

答案 0 :(得分:1)

你的Parent指向一个函数,其标签指向一个函数。

它需要看起来像这样......

Parent: {
    child: function(args) {
       console.log(args);
    }
}

这也假设Q.fn指向Q.prototype


  

我希望“孩子”成为“父母”的原型方法

您需要将其设置为普通原型。

你可以(如果你的目标支持__proto__)直接设置它......

Parent.__proto__ = { child: function() { } };

jsFiddle

这意味着Parent的原型链(注意:不要给它一个大写字母,因为它是构造函数的约定)将如下所示:Parent - > Objectchild - > Object.prototype

Object.prototype是该行的结尾,您可以通过评估({}).__proto__ === Object.prototype来看到这一点。