繁体   English   中英

在javascript中调用函数/对象引用时容纳任何数据类型

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM