2016-12-06 4 views
2

は、私はきれいにするためにBのようなオブジェクトを記述しようとしました。ネスト関数

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 

しかし、私は書き方のせいで失敗しました。 Aと同じことは、Bの文体でどのように実現できますか?

答えて

4

あなたがObject.assign

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

B.dog()を使用する必要があります。 B.dog.say();両方とも動作します。

注:Object.assign uはそれが動作します。このスクリプト

+1

を追加することによって、このpolyfill(すべてのブラウザでサポートされるようになった)を使用することができますJavaScriptの機能ES6です!回答ありがとうございます。 – sheep02

関連する問題