我正在尝试在对象原型中构建一个小型函数库。我以前只是将我的帮助函数作为全局函数抛出,但是我试图迁移到更自包含的东西。
无论如何,我的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"?
的原型答案 0 :(得分:1)
你的Parent
指向一个函数,其标签指向一个函数。
它需要看起来像这样......
Parent: {
child: function(args) {
console.log(args);
}
}
这也假设Q.fn
指向Q.prototype
。
我希望“孩子”成为“父母”的原型方法
您需要将其设置为普通原型。
你可以(如果你的目标支持__proto__
)直接设置它......
Parent.__proto__ = { child: function() { } };
这意味着Parent
的原型链(注意:不要给它一个大写字母,因为它是构造函数的约定)将如下所示:Parent
- > Object
与child
- > Object.prototype
。
Object.prototype
是该行的结尾,您可以通过评估({}).__proto__ === Object.prototype
来看到这一点。