使用变量名创建javascript函数并访问它?
我有一个场景,javascript函数名需要在运行时决定。为了简单起见,假设我在javascript变量中有函数名,现在我想使用变量值创建函数。我浏览了链接并尝试了小代码片段使用变量名创建javascript函数并访问它?,javascript,Javascript,我有一个场景,javascript函数名需要在运行时决定。为了简单起见,假设我在javascript变量中有函数名,现在我想使用变量值创建函数。我浏览了链接并尝试了小代码片段 <HTML> <HEAD> <TITLE> New Document </TITLE> </HEAD> <script> var temp1='at_26';
<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>
新文件
var temp1='at_26';
temp1:function(){alert(“Inside 26”);}
但当我点击超链接复制文本时,会出现错误,显示行:1
错误:“at_26”未定义代码中存在多个问题。更正后的版本如下所示:
<script>
window['at_26'] = function() {alert("Inside 26"); };
</script>
<BODY>
<a href="javascript:window['at_26']()">Copy Text</a>
</BODY>
window['at_26']=function(){alert(“Inside 26”);};
您的代码中存在多个问题。更正后的版本如下所示:
<script>
window['at_26'] = function() {alert("Inside 26"); };
</script>
<BODY>
<a href="javascript:window['at_26']()">Copy Text</a>
</BODY>
window['at_26']=function(){alert(“Inside 26”);};
然后
<a href="#" onclick="return window['at_26']()">Click</a>
使用
<a href="#" onclick="return myScope.at_26()">Click</a><br />
然后
<a href="#" onclick="return window['at_26']()">Click</a>
使用
<a href="#" onclick="return myScope.at_26()">Click</a><br />
Why downvote(除了没有修复可怕的javascript伪协议之外)@techfoobar我的问题是用变量名创建函数名。您已经用window['at_26']=function(){alert(“Inside 26”);}@MSach:几乎总是可以用变量替换任何文字。如果var a='at_26'代码>然后您可以编写窗口[a]=代码>和窗口[a]()代码>。没什么大不了的。为什么下一票(除了不修复可怕的javascript伪协议之外)@techfoobar我的问题是用变量名创建函数名。你已经用window['at_26']=function(){alert(“Inside 26”);}@MSach:几乎总是可以用变量替换任何文字。如果var a='at_26'代码>然后您可以编写窗口[a]=代码>和窗口[a]()代码>。没什么大不了的。可惜我不能投票否决评论!您链接到的问题没有显示与temp1:function(){alert(“Inside 26”);}
有关的任何内容。你从哪里弄来的?这是无效的JavaScript。太糟糕了,我不能投票否决评论!您链接到的问题没有显示与temp1:function(){alert(“Inside 26”);}
有关的任何内容。你从哪里弄来的?这是无效的JavaScript。是的window[temp1]
解析为window['at_26']
,函数分配在那里。你不会说window['temp1']=function
或temp1=function
。是的window[temp1]
解析为window['at_26']
,函数分配在那里。你不会说window['temp1']=function
或temp1=function
。