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

Javascript 在函数中使用eval替换图层名称上的前缀?,javascript,function,coffeescript,eval,Javascript,Function,Coffeescript,Eval,我需要编写一个函数,在这里我可以给它传递一个字符串,它将用该字符串的内容替换其中的单词前缀。因此,每次我调用函数并向其传递一个新字符串,即alpha、beta等,它将使用该键作为前缀,完全重建其中的所有层和事件。我怀疑我需要使用eval,但我不确定在这种情况下如何使用 layoutViews = (prefix) -> prefix_layer1 = new Layer width: 100 height: 100 prefix_layer

我需要编写一个函数,在这里我可以给它传递一个字符串,它将用该字符串的内容替换其中的单词前缀。因此,每次我调用函数并向其传递一个新字符串,即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();

窗口就是全球!浏览器中的元素不好,所以你可以考虑将它分配给窗口而不是取决于你的用法。

为什么你需要生成动态变量名?您打算如何引用这些动态变量?您是否考虑过使用对象来存储数据并使用键作为参考点?非常有用。谢谢@不,不是。不要使用此选项,而是使用对象。