我正在为工作中的重复编码任务构建一个utils库,我在这个过程中遇到了几个问题。
该库是在各种SEAF patterns之后建模的。 通用示例:
(function() {
var A = function() {
return new B();
};
var B = function() {
}
B.prototype = {
/* Object Methods */
}
window.a = window._a = A;
})();
如果我将值'A'赋值给窗口对象,我可以通过调用_a.object_method();
成功调用任何可用的原型方法。但是,如果我调用_a('selector');
,它可以理解地抛出一个typeError。
反过来也是如此,如果我为窗口对象分配函数引用window.a = _a = A;
我只能通过:_a('selector');
调用它,并且在尝试访问任何对象方法时将抛出typeError
我的问题是,通常最好的办法是什么?如果还有任何其他SO问题可以解决此问题,请以我的方式发送这些网址。
非常感谢!
这是一个基本的小提琴,取消注释交替的线条,看看我的意思。
答案 0 :(得分:0)
您无法拨打_a.init('HAI');
,因为_a
没有任何init
方法,只有B
的实例(而_a
只是参考到A
)。
但是,在致电_a()
后,您将获得B
的实例。所以,你可以这样做:
_a('HAI').init();