Нестатические приватные переменные в JavaScript - PullRequest
2 голосов
/ 14 сентября 2010

Я настраиваю свои объекты JavaScript как показано ниже*

Object2.setPrivateMember("new value");

Затем значение приватного члена в Объекте 1 также изменяется, поэтому оно ведет себя больше как статическая переменная.Есть ли способ, которым я могу заставить частные переменные не быть статичными?

PS - я программист-самоучка, поэтому мое использование терминологии может быть немного схематичным.Дайте мне знать, если это нужно уточнить

Ответы [ 3 ]

3 голосов
/ 14 сентября 2010

Righto, знал, что я удивил что-то вроде этого раньше:
Частные переменные в унаследованных прототипах

, ОЦ

2 голосов
/ 14 сентября 2010

Отредактировал мой ответ, можете проверить, работает ли это?

Попробуйте это -

Object1 = function() {  
  var privateMember = "private value"; 

  var returnVal =  {  
                publicMember: "public value",  
                setPrivateMember: function(value) {  
                privateMember = value;  
                }

           }; 
  return returnVal; 
}(); 
2 голосов
/ 14 сентября 2010

Вы создаете глобальную переменную. Поместите var перед ним.

var privateMember = "private value";
...