2
A
回答
1
您可以用方括号使用对象的属性名称字符串标识符的一些有用的功能:
obj['identifier'] === obj.identifier
然而,唯一的情境中,你可以作为对象属性的访问变量用于全局变量,因为它们作为全局属性(浏览器中的窗口)添加为对象:
var global = this;
var name = 'fred';
alert(global['name']); // fred
您不能访问任何其他执行上下文的变量对象,但你可以使用EVAL评估字符串:
alert(eval('name'))
但强烈建议反对。使用对象属性而不是方括号表示法。
0
如果您正在考虑使用用户输入来选择要应用的函数,某些用户可能会发现该函数(*)的使用方式令人厌恶,并且将函数指定为哈希值可能更安全如下:
(*)再次,访客可以随意编辑他们收到的JavaScript网站的副本,所以这可能是没有实际意义的。
function rotate(){
rotate an image;
}
function resize(){
resize an image;
}
operations = { 'rotate': rotate, 'resize': resize };
...
try {
(operations[userChoice])();
} catch(e){ console.log(e); } // or maybe tell the user there is no such function
请注意,如何使用操作对象限制了userChoice可以调用的内容。
0
我知道这不完全是你问的,但在某些情况下它可能是更好的选择。
除了使用函数的名称作为字符串外,还可以直接处理对函数本身的引用。
这将是这样的:
function func() { // normal function definition
}
var func2 = function() {}; // anonymous function
var function_to_use = func; // works with normal functions
function_to_use();
function_to_use = func2; // as well as anonymous ones
function_to_use();
相关问题
- 1. 我可以使用空字符串作为对象标识符吗?
- 2. 我可以将字符串传递给函数吗?
- 3. 我可以将Unicode字符串转储为字节数组吗?
- 4. 冒号可以用作标识符吗?
- 5. 我可以将字符符号转换为字符串
- 6. scanf可以识别字符串中的格式字符吗?
- 7. 制作C标识符和字符串?
- 8. JPA:我可以使用@Column(precision =)作为字符串值吗?
- 9. 我可以使用scanf作为字符串吗?
- 10. 我可以使用v字符串作为IPv4地址吗?
- 11. 我可以使用字符串作为QComboBox中的索引吗?
- 12. VTD-XML可以将字符串作为输入吗?
- 13. 我们可以将字符串保存为OpenTSDB中的值吗?
- 14. 标识符不能为空字符串
- 15. 我可以复制空字符串中的字符串吗?
- 16. 将非序列标识符作为数据库中表的主键可以吗?
- 17. 我可以使用解压将字符串拆分为Perl中的字符吗?
- 18. 我们可以设置字符串吗?
- 19. 我可以在SQL中用作内部标识符吗?
- 20. 可以将一次性密码用作标识符吗?
- 21. 可以将“with”用作Python中的标识符吗?
- 22. 将字符串作为参数传递给目标函数c
- 23. 可以使用identifierforvendor作为标识符吗?
- 24. TextEncoding可以转换为字符串吗?
- 25. 我可以调用一个函数的参数和标识符吗?
- 26. 你可以将字符串分解为C中的一个字符数组吗?
- 27. 我可以使用asm函数而不是以字符串文字作为参数的c-string变量吗?
- 28. 在Perl中,我可以将字符串视为字节数组吗?
- 29. java:我可以将字符串转换为字节数组,没有BOM吗?
- 30. 我可以将字符串传递给Zend sql的order函数吗?
如果是在窗口范围,你可以做'窗口[了funcName()'。 – elclanrs
如果你附加它来说窗口,例如,你可以说'window.func = function(){};'然后'窗口['func']();'但我不会推荐它。你试图解决的实际问题是什么? – asawyer