在javascript中使用[]调用函数方法而不是。操作者

时间:2016-02-17 23:29:39

标签: javascript

假设我有类似的东西

var foo = {};
foo.name = "Hello";
foo.someMethod= function(){
   console.log("SomeMethod called");
}

console.log("Use [ ] operator : " + foo["name"]);
console.log("Use dot notation : " + foo.name);

foo.someMethod();  //This works.
foo[someMethod](); //Why does this not work

我的问题是为什么最后的陈述不起作用?方法不能通过[]运算符调用吗?

2 个答案:

答案 0 :(得分:3)

因为someMethod将被解释为标识符。范围中没有名为someMethod的标识符。如果检查控制台输出,您将看到一个告诉错误:

  

未捕获的ReferenceError:未定义someMethod

您必须像foo["someMethod"]();

一样使用它

答案 1 :(得分:3)

您需要someMethod附近的引号

foo['someMethod']();将有效。