2017-09-07 5 views
0


J'ai un problème avec l'utilisation d'un setter en JavaScript.
Un problème avec la méthode set, lorsque je veux définir la valeur de la propriété lastName ou firstName rien ne se passe.
Seriez-vous si aimable de me donner des conseils, comment puis-je le résoudre?
Nous vous remercions à l'avance
Comment mettre une valeur aux objets en utilisant setter Javascript?

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 
+0

'name = split [0];' ne définit pas de propriété d'objet. – Teemu

Répondre

0

Vous n'êtes pas mettre quoi que ce soit dans vos méthodes set. Essayez ceci:

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

Bien, tout cela est un peu inutile, vous pouvez juste garder le prénom et le nom fileds séparés.