Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将函数更干净地嵌套到对象中_Javascript - Fatal编程技术网

Javascript 将函数更干净地嵌套到对象中

Javascript 将函数更干净地嵌套到对象中,javascript,Javascript,我成功地创建了嵌套对象,如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(); >>con

我成功地创建了嵌套对象,如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!!
接下来,我尝试为cleanly编写像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相同的事情?

您需要使用
对象。分配

var B = {
  dog: Object.assign(
    function() {
      console.log("LOVE HUMAN");
    }, {
      say: function() {
        console.log("Woof woof!!");
      },
      favorite:{
        meat: function() {}
      },
    }
  ),
};
B.狗(); 狗说;两者都会起作用

注意:Object.assign是一个ES6 javascript功能,您可以通过添加此脚本来使用它(添加对所有浏览器的支持)