2016-12-06 17 views
2

I successed Objekt wie A. verschachteltNest Funktion in Objekt saubere

var A = {}; 
    A.dog = function(){ 
    console.log("LOVE HUMAN"); 
    } 
    A.dog.say = function(){ 
    console.log("Woof woof!!"); 
    } 
    A.dog.favorite = {}; 
    A.dog.favorite.meat = function(){}; 

    A.dog(); 
    A.dog.say(); 

    >>console: LOVE HUMAN 
      Woof woof!! 

nächste habe ich versucht, für sauber Objekt wie B zu schreiben.

var B = { 
    dog:function(){ 
     console.log("LOVE HUMAN"); 
     }, 
    dog:{ 
     say:function(){ 
     console.log("Woof woof!!"); 
     }, 
     favorite:{ 
     meat:function(){} 
     } 
    } 
}; 

    A.dog(); 
    A.dog.say(); 

>>console: TypeError: B.dog is not a function 

aber ich scheiterte wegen der Art zu schreiben. Wie kann das gleiche wie A durch den Schreibstil von B realisiert werden?

Antwort

4

Sie benötigen Object.assign

var B = { 
    dog: Object.assign(
    function() { 
     console.log("LOVE HUMAN"); 
    }, { 
     say: function() { 
     console.log("Woof woof!!"); 
     }, 
     favorite:{ 
     meat: function() {} 
     }, 
    } 
), 
}; 

B.dog() zu verwenden; B.dog.say(); beide werden funktionieren.

Hinweis: Object.assign ist ein ES6 Javascript-Funktion u dieses polyfill (Unterstützung für alle Browser hinzufügt), indem Sie diesen Skript

+1

Es funktioniert verwenden können! danke für die Antwort. – sheep02