Другие дали вам ответ get, но ваш вопрос казался больше об установке значения.
var foo = (function() {
//Private vars
var a = 1;
Это одно из присвоения a , которое является локальным дляанонимная функция.
return {
//Public vars/methods
a: a,
Это также однократное присвоение значения a свойству a объекта, на который будет ссылаться Foo .Последующие изменения в переменной a не повлияют на значение этого свойства.
changeVar: function () {
a = 2;
Здесь a разрешит ссылку на "внешний" a , поэтому он изменит значение переменной, но не изменит значение foo.a .Если вы знаете, что он всегда будет вызываться как метод foo , вместо этого вы можете написать:
changeVar: function () {
this.a = 2;
, чтобы он разрешил a как свойство foo , а не цепочка областей действия (и, следовательно, переменная a ).
}
}
})();