假设我有类似的东西
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
我的问题是为什么最后的陈述不起作用?方法不能通过[]运算符调用吗?
答案 0 :(得分:3)
因为someMethod
将被解释为标识符。范围中没有名为someMethod
的标识符。如果检查控制台输出,您将看到一个告诉错误:
未捕获的ReferenceError:未定义someMethod
您必须像foo["someMethod"]();
答案 1 :(得分:3)
您需要someMethod
附近的引号
foo['someMethod']();
将有效。