Предположим, у меня есть что-то вроде этоговызов метода функции с использованием [] в 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
Мой вопрос, почему не работает последнее утверждение? Может ли метод не вызываться через [] операторов?
У вас есть кавычки в 'foo [" name "]', но не в 'foo [someMethod]', почему? – georg
При использовании квадратных скобок бит в скобках является выражением, поэтому он оценивается и * someMethod * обрабатывается как идентификатор. Таким образом, движок скриптов ищет переменную * someMethod *, чтобы получить ее ценность и не может ее найти. – RobG
'foo [someMethod]()' не работает по той же причине, что 'foo [name]' не работает. – Barmar