Код от средний, понять замыкания
function Person(name) {
var secret = 'secret!';
this.name = name
this.setName = function(newName) { this.name = newName }
this.setNameToFoo = function() { this.name = foo }
this.getSecret = function() { return secret }
}
var a = new Person('Max');
console.log(a.name);
a.setName('Oliver')
console.log(a.name);
var foo = 'Foo';
a.setNameToFoo()
console.log(a.name);
console.log(a.getSecret);
Вывод
Max
Oliver
Foo
[Function (anonymous)]
Все в порядке, кроме последнего. Кажется, что местных привязок не видно. Почему?