代码之家  ›  专栏  ›  技术社区  ›  Enrique Moreno Tent

Javascript-以字符串形式获取函数的名称

  •  1
  • Enrique Moreno Tent  · 技术社区  · 10 年前

    所以我包括了一些这样的图书馆

    var start = function() { ... }
    
    var loadScript = function() {
        script      = document.createElement('script');
        script.type = 'text/javascript';
        script.src  = 'https://whatever.com/js?callback=start';
        document.body.appendChild(script)
    }
    
    window.onload = loadScript;
    

    如您所见,我设置了一个名为“start”的函数作为库的回调。问题是,如果缩小文件,则不会调用该函数 start 不再

    我试过了,但没用。

        script.src  = 'https://whatever.com/js?callback=' + start.name;
    

    如何以编程方式将函数的名称添加到 src 属性

    编辑

    我使用的是Rails4,资产在Coffeescapet中,所以我认为我不能使用命名函数声明。

    2 回复  |  直到 10 年前
        1
  •  1
  •   ded    10 年前

    大多数缩小器不会折叠全局指针。所以如果你有 window.start (虽然不建议有太多这样的通用全局名称)。

    或者,为了证明这一点, window.MyAPP.Myutil.start

    另一点要记住的是,匿名函数没有 name 属性,即使您已将其分配给变量。您需要将其添加到函数声明中。

    window.start = function start() {
      // stuff
    }
    
        2
  •  0
  •   ashokd    10 年前

    你可以这样做,它可以与任何迷你机一起使用。

    var start = function() { ... }
    var someObj = {'start': start};
    

    然后使用 someObj['start']() 调用启动函数。