我知道标题很模糊,但我不知道该写什么。
在 javascript 中,我知道如何编写这样调用的函数:
argument1.function(argument2);
这是小提琴演示: http: //jsfiddle.net/rFXhf/
现在我想知道我是否可以这样做:
argument1.argument2.function(argument3);//And even more!
我知道标题很模糊,但我不知道该写什么。
在 javascript 中,我知道如何编写这样调用的函数:
argument1.function(argument2);
这是小提琴演示: http: //jsfiddle.net/rFXhf/
现在我想知道我是否可以这样做:
argument1.argument2.function(argument3);//And even more!
在对象内部定义函数时不再需要指定function
关键字。
具有命名函数的第一个选项:
const myObj = {
myMethod(params) {
// ...do something here
},
myOtherMethod(params) {
// ...do something here
},
nestedObj: {
myNestedMethod(params) {
// ...do something here
}
}
};
使用匿名函数的第二个选项:
const myObj = {
myMethod: (params) => {
// ...do something here
},
myOtherMethod: (params) => {
// ...do something here
},
nestedObj: {
myNestedMethod: (params) => {
// ...do something here
}
}
};
前 ES6 风格:
const myObj = {
myMethod: function myMethod(params) {
// ...do something here
},
myOtherMethod: function myOtherMethod(params) {
// ...do something here
},
nestedObj: {
myNestedMethod: function myNestedMethod(params) {
// ...do something here
}
}
};
注意:在第一个示例中,函数被命名并具有自己的 this-context。在第二个示例中,使用了函数外部的 this-context。在第三个示例中,函数没有命名,但有自己的 this-context。
因此,尽管所有方法看起来都相似,但它们还是有些不同。
您需要像这样定义对象:
var argument1 = {
myvar : "12",
mymethod : function(test) { return something; }
}
然后像这样调用mymethod:
argument1.mymethod(parameter);
或更深的版本:
var argument1 = {
argument2 : {
mymethod : function(test) { return something; }
}
}
然后:
argument1.argument2.mymethod(parameter);