如何使用 setter Javascript 为对象赋值?
How to put a value to the objects using setter Javascript?
我对在 JavaScript 中使用 setter 有一些疑问。
设置方法的问题,当我想设置 属性 lastName
或 firstName
的值时,没有任何反应。
您能给我一些建议吗,关于我该如何解决?
提前谢谢你
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;
}
不过,这整件事有点毫无意义,您可以将名字和姓氏作为单独的字段。
我对在 JavaScript 中使用 setter 有一些疑问。
设置方法的问题,当我想设置 属性 lastName
或 firstName
的值时,没有任何反应。
您能给我一些建议吗,关于我该如何解决?
提前谢谢你
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;
}
不过,这整件事有点毫无意义,您可以将名字和姓氏作为单独的字段。