На самом деле вы можете иметь «приватные» переменные в javascript и методе getter для доступа к ним:
вы можете сделать:
function privateData(){
var _myVariable = 1;
return {
getData: function(){
return _myVariable;
}
}
}
var myObject = privateData();
myObject._myVariable; //it's undefined
myObject.getData();//returns 1
В этом примере переменная _myVariable недоступна в браузере и не может быть изменена пользователем каким-либо образом, поскольку ее локальная область находится внутри функции. Ваша функция возвращает объект, который может обращаться к этой переменной, потому что, возвращая объект, вы создаете замыкание.
В этом случае getData является свойством возвращаемого объекта и может обращаться к _myVariable, потому что это локальная область действия функции privateData.
Я рекомендую книги:
- объектно-ориентированный Javascript и шаблоны Javascript от Стоянова
- Javascript: хорошие детали Крокфорд
для некоторых продвинутых техник javascript