javascript在窗口对象上调用函数 [英] javascript calling a function on window object

查看:68
本文介绍了javascript在窗口对象上调用函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下代码,并且想知道如何使最后一行有效.我添加了一组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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆