2017-09-07 2 views
0


Ich habe ein Problem bezüglich der Verwendung eines Setter in JavaScript.
Ein Problem mit der Methode set, wenn ich den Wert der Eigenschaft lastName oder firstName setzen möchte passiert nichts.
Wären Sie so freundlich, mir einen Rat zu geben, wie kann ich es lösen?
Vielen Dank im Voraus
Wie setze ich einen Wert auf die Objekte mit 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];' setzt keine Objekteigenschaft. – Teemu

Antwort

0

Du eigentlich nichts in Ihren Set-Methoden setzen. Versuchen Sie folgendes:

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

Obwohl, diese ganze Sache irgendwie sinnlos ist, können Sie einfach halten Vorname und Nachname als separate fileds.

Verwandte Themen