在 Javascript 中的对象文字中按名称(作为字符串)调用函数
Calling function by name (as a string) within an object literal in Javascript
>我目前正在用JS构建一些东西,并遇到了以下情况:
// these are set programmatically, not like this, just using as an example
var data = {'someData':'blah'};
var widget = 'NameOfWidget';
var command = 'someFunctionName';
// there is a base object that has all widgets and their commands as child objects
// format would be like: UBER.WidgetName.command(data);
// here is how I have tried to call it thus far
UBER[widget][command](data);
window['UBER'][widget][command](data);
我觉得我已经快要弄清楚了,只需要一点帮助来弄清楚确切的语法!谢谢!
尝试:
UBER['widget']['command'](data);
window['UBER']['widget']['command'](data);
或
UBER.widget.command(data);
window.UBER.widget.command(data);
这假设命令是一个函数,小部件和UBER是对象,window['UBER'] = UBER。
使用括号语法引用对象属性时,需要使用字符串。 如果使用.
语法,则必须使用在 Javascript 中不是保留字的合法字符串文本。
例如:
var command = function(){return 5},
widget = {},
UBER = {};
UBER.widget = widget;
widget.command = command;
console.log(UBER['widget']['command']()); // prints 5 to Chrome's developer console or firebug
你不这样做有什么原因吗?
window[UBER.widget.command](data);
编辑:我知道你想做什么,这个答案目前不正确应该有效,因为我明白你想做什么。
相关文章:
- 从字符串调用javascript函数
- 从字符串调用命名空间Function
- 为什么我不能通过对象中定义的字符串调用 setter
- 从字符串调用对象下的函数
- 在 JavaScript 中通过字符串调用函数
- 在 JavaScript 中通过字符串调用函数
- JavaScript - 通过字符串调用函数
- 在 MVC3 中使用字符串调用 JS 函数时,在视图中传递多个参数
- 仅使用方法名称的字符串调用对象的方法
- 如何从字符串调用 json
- 如何在 javascript 中从字符串调用私有函数
- 如何在 javascript 中使用字符串调用函数
- 从传递给函数的字符串调用 JavaScript 函数
- JS用字符串调用函数运行时内的函数
- 对字符串调用replace将引发EvaluatorException
- 使用字符串调用不带eval()的函数
- Android Webview LoadURL用两个字符串调用javascript
- typescript从字符串调用kendo ui方法
- JavaScript,在不使用eval(Revearing模式)的情况下,将私有函数作为公共方法内的字符串调用
- 尝试使用字符串调用方法名称:Uncaught TypeError:Object[Object global]没有方法