javascript在窗口对象上调用函数 [英] javascript calling a function on window object
问题描述
我有以下代码,并且想知道如何使最后一行有效.我添加了一组api,这些api当前使用_view作为其命名空间约定,并且宁愿使用诸如arc.view.$ function_name之类的东西.
I have the following code and am wondering how to make the last line work. I addopted a set of api's that current use _view appended as it's namespacing convention and would rather use something like arc.view.$function_name. thx
var arc={};
arc.view={
say_hello: function(){
alert("I want to say hello");
}
}
function say_goodbye(){
alert("goodbye to you");
}
arc.view.say_hello(); // works
window['say_goodbye'](); // works
// possible to make this work?
window['arc.view.say_hello']();
推荐答案
window['arc']['view']['say_hello']();
或
window.arc.view.say_hello()
或
window['arc'].view['say_hello']()
点语法或括号语法都可以使用.点语法实际上只是基于括号的属性查找的语法糖,因此上述所有代码段都是相同的.当属性名称本身是动态值时,或在点语法中使用属性名称会导致语法错误时,请使用方括号语法.例如:
Either the dot syntax or the bracket syntax will work. Dot syntax is really just syntactic sugar for a bracket-based property lookup, so all of the above code snippets are identical. Use bracket syntax when the property name itself is a dynamic value, or when using the property name in dot syntax would cause a syntax error. E.g.:
var dynamicMethodName = someObject.getMethodName();
someOtherObject[dynamicMethodName]();
或
someOtherObject["a key string with spaces and {special characters}"]();
这篇关于javascript在窗口对象上调用函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!