如何使用 setter Javascript 为对象赋值?

How to put a value to the objects using setter Javascript?


我对在 JavaScript 中使用 setter 有一些疑问。
设置方法的问题,当我想设置 属性 lastNamefirstName 的值时,没有任何反应。
您能给我一些建议吗,关于我该如何解决?
提前谢谢你

function User(fullName) {
    this.fullName = fullName;

    Object.defineProperties(this, {
        'firstName': {
            get: function(){
                var _that = this;
                var str = _that.fullName.split(' ');
                return str[0];
            },
            set: function(name){
                var split = this.fullName.split(' ');
                name = split[0];
            }
        },
        'lastName': {
            get: function(){
                var _that = this;
                var str = _that.fullName.split(' ');
                return str[1];
            },
            set: function(name){
                var split = this.fullName.split(' ');
                name = split[1];
            }
        }
    })
};
var fred = new User("Freedy House");
console.log(fred.fullName); //Freedy House
fred.firstName = 'Nossssssu'
console.log(fred.firstName); //It stil the old value 

您实际上并未在设置方法中设置任何内容。试试这个:

set: function(lastName){
    var firstName = this.fullName.split(' ')[0];
    this.fullName = firstName + ' ' + lastName;
}

不过,这整件事有点毫无意义,您可以将名字和姓氏作为单独的字段。