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
}
}
};