这可以用javascript吗?使用相同的功能并反复调用它。
myFunc("test")("me")("please")()
修改
感谢您的回答。我想保留和内部变量,如果可能的话,将字符串附加到前一个。
答案 0 :(得分:2)
是的,您可以,return arguments.callee;
,例如:
(function(param){console.log(param); return arguments.callee;})("test")("me")("please")
将登录到控制台:
test
me
please
答案 1 :(得分:2)
function MyFunc(arg){
console.log(arg);
return MyFunc;
}
MyFunc("a")("b")("c");
Y-combinator示例:
function Y(f) {
var g = f(function() {
return g.apply(this, arguments);
});
return g;
}
var MyFunc = Y(function(f) {
var a = "";
return function(n) {
a = a + n;
console.log(a);
return f;
};
});
//alert(a); // throws error as a is outside of scope here
MyFunc("a")("b")("c"); # logs a; ab; abc