Я пытаюсь сделать объект закрытым, но не уверен, как это сделать. Поскольку вы можете видеть, что переменная name является частной, я не могу ее редактировать, но когда дело доходит до объекта, который я возвращаю, я могу редактировать. Я не хочу, чтобы это было возможно. Я совершенно новый для объектно-ориентированных и частных методов в javascript, так что кто-то может сказать мне, что здесь правильно и что не так. :) Как я могу это решить? Спасибо!Почему мой объект не является приватным, когда моя переменная?
var User = function() {
var name = 'bob';
this.getName = function() {
return name;
}
var otherInfo = {
age: 20,
human: true,
}
this.getOther = function() {
return otherInfo;
}
}
var person = new User();
var name = person.getName();
name = 'jenny';
console.log(person.getName()); // bob
var other = person.getOther();
other.age = 'wtf?';
console.log(person.getOther()); // { age: 'wtf?', human: true }
Если вы не хотите изменять возвращаемое значение 'person.getOther()' для изменения значения 'otherInfo', тогда вам нужно вернуть его копию. – forgivenson
Как это сделать? –
http://stackoverflow.com/questions/728360/most-elegant-way-to-clone-a-javascript-object – Jonathan