Javascript将字符串转换为函数名
Javascript convert string into function name
可能重复:
使用字符串调用JavaScript函数名
变量的javascript字符串
我有这个代码:
var Functionify = function() {
return {
init: function(el, t) {
var els = document.getElementsByClassName(el);
var elsL = els.length;
while(elsL--){
//els[elsL].onclick = els[elsL].getAttribute(t);
els[elsL].addEventListener('click', els[elsL].getAttribute(t), false);
}
}
};
}();
其中el = 'myClassName'
和t = 'data-id'
现在,"t"是一个字符串,如何告诉addEventListener函数使用"t"(字符串)作为函数名?
在全局命名空间中,您可以执行以下操作:
this.test = function() {
alert('test');
}
window['test']();
然而,更好的选择是使函数成为您创建的对象的方法,而不是全局window
对象的方法。
我不知道你为什么要这么做,如果函数是全局范围的一部分,你可以使用括号表示法。
window["stringName"]();
使用eval()被认为是"邪恶的",尤其是在Danila给出的例子中——任何一段JS都可以在eval(。正如epascarello所说,最好的选择是使用方括号表示法来调用命名函数。然而,需要注意的是,windowt将调用全局命名空间中的函数——如果该函数是对象的方法,则应该引用它。
使用eval()函数
示例:
a = "alert(1)"
eval(a)
相关文章:
- 如何在将Node异步函数转换为promise时使用Q库
- 如何分解jQuery"toggle”;函数转换为separate“;显示“;以及“;隐藏“;功能
- 将函数转换为jQuery插件
- jquery递归函数转换为非递归函数
- jQuery函数转换为MooTools
- 将javascript函数转换为jquery
- 将Window Onload函数转换为非阻塞
- 如何将下面的递归函数转换为纯函数
- 将jquery函数转换为js
- 如何将这个递归函数转换为迭代函数
- 将递归函数转换为异步 CPS 实现 (javascript)
- 通过在JavaScript中将函数转换为对象可以实现什么
- 从JavaScript函数转换为jQuery
- JS:将单参数函数转换为可链接函数
- 如何将此函数转换为 Angular 指令
- 从控制台中的工作函数转换为工作脚本.(请参阅编辑)
- 将图像的 onError 函数转换为返回函数
- jQuery:将每个函数转换为 for 循环
- 如何将 JavaScript forEach 循环/函数转换为 CoffeeScript
- Javascript 将声明为函数字典的函数转换为原型