Ich habe diesen Code:Wie wird auf das erste aufgerufene Objekt verwiesen?
var Person = {
"name": "",
"changes": {
"name to": function(value) {
this["name"] = value;
}
}
}
var Josh = Object.create(Person);
Josh["changes"]["name to"]("John");
console.log(Josh.name); // nothing
console.log(Josh.changes.name); // "John"
Das Problem ist, dass diese oben bezieht sich auf „Änderungen“ Objekt und nicht die Instanz „Josh“ widersprechen.
Ich kann das nicht durch Person ersetzen, weil es sich dann auf das Objekt "Person" und nicht auf die Objektinstanz "Josh" bezieht.
Kann man sich auf Joshs Namen beziehen?
Für was ist das Objekt "changes"? Es scheint keinen Zweck zu erfüllen. Es wäre natürlicher, eine 'Person.changeName()' Funktion zu haben. –
Dies war nur eine Vereinfachung der tatsächlichen Implementierung. Das Prinzip ist dasselbe. – ajsie
Von einem OO pov, scheint es ein bisschen seltsam. Ein Objekt soll Daten und Methoden einkapseln, um mit diesen Daten zu arbeiten. Sie isolieren Ihre Methoden auf ein anderes Objekt. –