Javascript вызов частного метода с ()() - круглые скобки после круглых скобок
Я играл с закрытыми методами и случайно обнаружил, что могу вызвать метод, который вызывает закрытый метод, используя () () - двойные скобки вместо того, чтобы назначать его переменным пару раз.
Вот мой код, чтобы сделать его более понятным:
function Person(name, age) {
this.name = name;
this.age = age;
var bankBalance = 7500;
var returnBalance = function() {
return bankBalance;
};
this.askTeller = function() {
return returnBalance;
}
}
var john = new Person('John', 'Smith', 30);
console.log(john.returnBalance); // undefined
var myBalanceMethod = john.askTeller();
var myBalance = myBalanceMethod();
console.log(myBalance); // 7500
console.log(john.askTeller()()); // 7500 (same result but one line instead of three
Итак, допустим ли синтаксис - () ()?
1 ответ
Решение
Да, это - john.askTeller()
возвращает функцию returnBalance
что вы затем вызываете с ()
,
returnBalance
это функция, ограниченная Person
функцияконструктора, но она становится доступной за пределами этой области, когда она возвращается из askTeller
вызов функции.