繁体   English   中英

在函数中使用 eval 替换图层名称的前缀?

[英]Using eval in a function to replace a prefix on layer names?

我需要编写一个函数,我可以向它传递一个字符串,它将用该字符串的内容替换其中的单词“prefix”。 因此,每次我调用该函数并传递一个新字符串(即 alpha、beta 等)时​​,它都会使用该键作为前缀完全重建内部的所有层和事件。 我怀疑我需要使用 eval,但我不确定在这种情况下如何使用。

layoutViews = (prefix) ->
    prefix_layer1 = new Layer
        width: 100
        height: 100

    prefix_layer1.on Events.Click ->
        buttonActions()

layoutViews(alpha)
layoutViews(beta)

我正在使用 CoffeeScript,但也欢迎任何关于真正 JS 的想法。 我意识到这个特定的问题暗示我在项目中做错了什么,但这主要是出于我自己的好奇心,这是否可能。

所以你要

function build(prefix) {
  window[prefix + "_hi"] = function() {
    alert("hi");
  };
}

像这样使用:

build("test");
test_hi();

Window 只是浏览器中的全局(!Bad)元素,因此您可能会考虑分配给this而不是window取决于您的使用情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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