[英]Accommodating any data type when calling a function/object reference in javascript
我正在建立一个utils库来处理工作中的重复编码任务,并且在此过程中遇到了两个问题。
该库是根据各种SEAF模式建模的。 通用示例:
(function() {
var A = function() {
return new B();
};
var B = function() {
}
B.prototype = {
/* Object Methods */
}
window.a = window._a = A;
})();
如果我将值分配给窗口对象“ A”,则可以通过调用_a.object_method();
成功调用任何可用的原型方法_a.object_method();
但是,如果我调用_a('selector');
它可以理解地抛出一个typeError。
反之亦然,如果我给窗口对象分配了函数引用window.a = _a = A;
我只能通过以下方式调用它: _a('selector');
并且尝试访问任何对象方法时将引发typeError。
我的问题是,通常最好的解决方法是什么? 如果还有其他SO问题可以解决此问题,请以我的方式发送这些URL。
非常感谢!
这是一个基本的小提琴,请不要注释交替的行,以了解我的意思。
您不能调用_a.init('HAI');
因为_a
没有任何init
方法,所以只有B
实例可以(并且_a
只是对A
的引用)。
但是,在调用_a()
,您将获得B
的实例。 因此,您可以这样做:
_a('HAI').init();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.