誰かが、 "setFirstName"セッターメソッドが "firstName"変数を "NewFirstName"に変更した後に、自分のオブジェクト内の "fullName"変数が変更されない理由を説明できますか?私はこの問題の正解を認識していますが、私は次の解決策がうまくいかない理由について混乱しています。ここでsetterメソッドがJavaScriptオブジェクトの他の変数に影響を与えないのはなぜですか?
This is a picture showing the below snippet being run
コードです:あなただけそれが動的に更新されません、一度fullName
を計算しているので
<!DOCTYPE html>
<html>
<script>
var Person = function(firstAndLast) {
let firstName = firstAndLast.split(" ")[0];
let lastName = firstAndLast.split(" ")[1];
let fullName = firstName + " " + lastName;
// Getters
this.getFirstName = function() {
return firstName;
};
this.getLastName = function() {
return lastName;
};
this.getFullName = function() {
return fullName;
};
// Setters
this.setFirstName = function(first) {
firstName = first;
};
this.setLastName = function(last) {
lastName = last;
};
this.setFullName = function(name) {
fullName = name;
};
};
debugger;
var bob = new Person('Bob Ross');
console.log(bob.getFullName());
bob.setFirstName("NewFirstName");
console.log(bob.getFirstName());
console.log(bob.getFullName());
</script>
</html>
'fullname'変数はインスタンス化中に一度評価されます。 'fullname'自体ではなく、' firstname + '' + lastname'をゲッターから返すことを望みます。 – nilobarp