Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.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_Object - Fatal编程技术网

Javascript 对象内部的函数

Javascript 对象内部的函数,javascript,object,Javascript,Object,我知道标题很模糊,但我不知道该写什么。 在javascript中,我知道如何编写如下调用的函数: argument1.function(argument2); 这是小提琴示范: 现在我想知道我是否能做到: argument1.argument2.function(argument3);//And even more! 您需要像这样定义对象: var argument1 = { myvar : "12", mymethod : function(test) { return s

我知道标题很模糊,但我不知道该写什么。
在javascript中,我知道如何编写如下调用的函数:

argument1.function(argument2);
这是小提琴示范:
现在我想知道我是否能做到:

argument1.argument2.function(argument3);//And even more!

您需要像这样定义对象:

var argument1 = {
    myvar : "12",
    mymethod : function(test) { return something; }
}
然后调用mymethod,如下所示:

argument1.mymethod(parameter);
或者更深层的版本:

var argument1 = {
    argument2 : {
       mymethod : function(test) { return something; }
    }
} 
然后:

现代ES6方法 在对象内定义函数时,不再需要指定
函数
关键字:

var myObj = {
  myMethod(params) {
    // ...do something here
  },
  myOtherMethod(params) {
    // ...do something here
  },
  nestedObj: {
    myNestedMethod(params) {
      // ...do something here
    }
  }
};
除重复和冗长外,其他内容相同:

var myObj = {
  myMethod: function myMethod(params) {
    // ...do something here
  },
  myOtherMethod: function myOtherMethod(params) {
    // ...do something here
  },
  nestedObj: {
    myNestedMethod: function myNestedMethod(params) {
      // ...do something here
    }
  }
}; 

这会起作用,但我想要一个像jsfiddle这样的版本,您只需编写:var a;var b;a、 战俘(b);例如,你有一个特定类型的参数,或者你想让它在任何事情上工作吗?好的,现在我知道了。我认为你做不到这一点,因为“.”连接器是用于到达其子函数/变量的对象的。这和myMethod(argument1、argument2、parameter)不一样吗?@sujumayas不,不是。无法访问嵌套方法中的argument1 argument2。你不需要。把它想象成函数的容器。一个对象可以包含任何类型的节点,因此可以将其与内部对象嵌套。当使用ES6
myMethod:params=>{//…do some here}
@Rubanov时,这对我来说更有意义。使用箭头功能并不等同于上述功能。myMethod的上下文将导致未定义或窗口上下文。JavaScript箭头函数上的Mozilla文档指出,“箭头函数表达式最适合于非方法函数。”。裁判:
var myObj = {
  myMethod: function myMethod(params) {
    // ...do something here
  },
  myOtherMethod: function myOtherMethod(params) {
    // ...do something here
  },
  nestedObj: {
    myNestedMethod: function myNestedMethod(params) {
      // ...do something here
    }
  }
};