私は次のコードを持っている。それを少し変更する場合なぜゲッター戻り古い値
var vasya = new User("oldName oldSurname");
console.log(vasya.firstName); //
vasya.firstName = "newName";
vasya.lastName = "newSurname"
console.log(vasya.fullName);
この出力newName OldSurname
:
function User(fullName) {
this.fullName = fullName;
Object.defineProperties(this,
{
firstName: {
get: function() {
return fullName.split(" ")[0];
}
,
set: function (fName) {
this.fullName = fName + " " + this.lastName;
}
},
lastName: {
get: function() {
return fullName.split(" ")[1];
}
,
set: function (lName) {
this.fullName = this.firstName + " " + lName;
}
}
})
}
および実行するコード次の
var vasya = new User("oldName oldSurname");
console.log(vasya.firstName); //
console.log(vasya.lastName); //
vasya.firstName = "newName";
vasya.lastName = "newSurname"
console.log(vasya.fullName);
それは私が、私はこのコードで演奏し、それが競合を命名していることが分かったnewName