JavaScript中具有多个参数的函数
我刚刚接受了这个测试JavaScript中具有多个参数的函数,javascript,Javascript,我刚刚接受了这个测试 function darling(w) { /** * your code here */ } /** * test functions, those in comment are expected returned value */ var demoIsWorking = demo(); var absolutely = darling('w')('i')('l')('l')['y']['o']['u'].m.a.r.r.y('m').e['?']; var d
function darling(w) {
/**
* your code here
*/
}
/**
* test functions, those in comment are expected returned value
*/
var demoIsWorking = demo();
var absolutely = darling('w')('i')('l')('l')['y']['o']['u'].m.a.r.r.y('m').e['?'];
var definitely = darling('w')('o')('u')('l')('d')['y']['o']['u'].m.a.r.r.y('m').e['?'];
var rUKidding = darling('w')('i')('l')('l')['y']['o']['u'].m.a.r.r.y('h').im['?'];
var yNot = darling('w')('o')('u')('l')('d')['y']['o']['u'].m.a.r.r.y('h').im['?'];
从程序调用函数darling时的代码中可以看出,它有许多不同的参数,具有不同的and[]。这真让我困惑。有人能给我解释一下为什么这个函数可以有很多参数和很多括号吗
感谢您的帮助函数可以返回任何内容,例如对象或其他函数。例如:
function matchesYou() {
return { y: { o: { u: true } } };
}
使以下各项成为可能:
matchesYou().y.o.u;
您也可以这样写:
matchesYou()['y']['o']['u'];
或两者的任意组合
对于圆括号,它更简单:
function darling(w) {
return function(iOrU) {
return function(lOrU) {
return function(l) {
return true;
};
};
};
}
你可以这样称呼它:
darling('w')('i')('l')('l');
或者像这样,没关系:
darling()()()();
最多只传递一个参数 它实际上是通过让一个函数返回另一个函数来链接不同的函数
function someFunction(w) {
switch(w): {
case 'a':
return function() { ... }
case 'b':
return function() { ... }
}
}
根据传递的参数,调用someFunction可能返回完全不同的函数
在这些函数中的某个地方,它返回数组中的一个数组
[
['a','b','c'],
['a','b','c'],
['a','b','c'],
];
其中一些包含对象
[{a:'1',b:'2' ....}], 'b']
是的,我还需要一些解释。我知道这是用于可调用对象,[]是用于对象文字,但我以前没有看到两个括号一起出现。该函数不是用多个参数调用的。。。。正在发生的事情是调用函数来重新调用函数等等。[…]依次是引用var obj={a:1}的对象键;obj[a]/=>1。