Ich versuche, ein Objekt privat zu machen, aber nicht sicher, wie das geht. Wie Sie sehen können, ist die Namensvariable privat. Ich kann sie nicht bearbeiten, aber wenn es zu dem Objekt kommt, das ich zurückgebe, kann ich es bearbeiten. Ich möchte das nicht möglich sein. Ich bin neu in objektorientierten und privaten Methoden in Javascript, also könnte mir jemand sagen, was hier richtig und falsch ist. :) Wie kann ich das lösen? Danke!Warum ist mein Objekt nicht privat, wenn meine Variable ist?
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 }
Wenn Sie den Rückgabewert von 'person.getOther()' nicht ändern möchten, um den Wert von 'otherInfo' zu ändern, müssen Sie eine Kopie davon zurückgeben. – forgivenson
Wie mache ich das? –
http://stackoverflow.com/questions/728360/most-elegant-way-to-clone-a-javascript-object – Jonathan