Ключевым моментом, который нужно убрать, является то, что в вашем примере класса y является личным .
Как уже упоминалось другими, есть несколько способов сделать ее общедоступной переменной-членом, но я хотел бы упомянуть тот факт, что следующая структура:
function SomeClass(){
var y = 15;
}
... может быть использована в ваших интересах, поскольку она является частной.
Обычно я использую несколько различных шаблонов для создания классов и объектов, но вы можете сделать одну полезную вещь - возвращать литерал объекта из вашей функции, в котором есть встроенные функции, которые могут ссылаться на y, но не подвергать y внешнему миру..
Вставьте этот пример на страницу, попробуйте его и увидите, что вы можете читать и писать в y, используя методы доступа:
<script type="text/javascript">
function SomeClass() {
var y = 15;
return {
getY : function() { return y },
setY : function(newY) { y = newY; }
};
};
var obj = new SomeClass();
function showY() {
alert("obj.getY: " + obj.getY()); // alerts current value of y.
}
function updateY() {
obj.setY(25);
alert("updated.");
}
</script>
<input type="button" onclick="showY();return false;" value="showY"/>
<input type="button" onclick="updateY();return false" value="updateY"/>
Затем сначала нажмите «showY», затем«updateY», затем «showY» снова, чтобы увидеть поведение.
Это не единственный шаблон, который я лично использую, но javascript настолько гибок, что с ним можно сделать много забавных вещей.
Надеюсь, я вас не слишком обидели надеюсь, что это немного поможет с концепциями!