用变量名创建javascript函数并访问它?

时间:2012-10-13 09:25:55

标签: javascript

我有一个场景,需要在运行时决定javascript函数名称。为简单起见假设我在javascript变量中有函数名称,现在我想使用变量值创建函数。我通过链接Javascript - Variable in function name, possible?并尝试了小代码片段

   <HTML>
       <HEAD>
          <TITLE> New Document </TITLE>
      </HEAD>
        <script>
        var temp1='at_26';
        temp1: function() {alert("Inside 26"); }
        </script>
         <BODY>
            <a href="javascript:window[at_26]()">Copy Text</a>
         </BODY>
    </HTML>

但是当我点击超链接复制文本时,它会出错 Line:1 错误:'at_26'未定义

2 个答案:

答案 0 :(得分:2)

DEMOs

var temp1='at_26'; 
window[temp1]=function() {alert("Inside 26"); return false} 

然后

<a href="#" onclick="return window['at_26']()">Click</a>

<a href="#" onclick="return at_26()">Click</a>

应该有效

我想要你想要的是因为它没有污染全局范围并且在你的例子中使用冒号是这样的:

var myScope = {
  "at_26":function() {alert("Inside 26"); return false}
}

使用

<a href="#" onclick="return myScope.at_26()">Click</a><br />

答案 1 :(得分:1)

您的代码中存在多个问题。更正后的版本将如下:

<script>
    window['at_26'] = function() {alert("Inside 26"); };
</script>
<BODY>
    <a href="javascript:window['at_26']()">Copy Text</a>
</BODY>