我成功嵌套了对象,例如A。
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!!
接下来,我试图干净地写出像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
但是由于写作的方式我失败了。 如何通过B的写作风格来实现与A相同的东西?
答案 0 :(得分: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是一个ES6 javascript功能,您可以通过添加此脚本来使用此polyfill(添加对所有浏览器的支持)