我想知道是否有任何方法可以通过使用像Google Closure这样的预处理器/编译器来缩短JavaScript中的匿名函数声明。我认为回调非常简洁。
例如,通常我会用这种方式写一个qunit测试用例:
test("Dummy test", function(){ ok( a == b );});
我正在寻找一些受Clojure启发的语法:
test("Dummy test", #(ok a b));
有可能吗?
答案 0 :(得分:4)
无需担心预处理器或编译器,您可以执行以下操作来缩短回调语法。有一点是,“这个”的范围没有处理......但对于你的用例,我认为这不重要:
var ok = function(a,b) {
return (a==b);
};
var f = function(func) {
var args = Array.prototype.slice.call(arguments, 1);
return function() {
return func.apply(undefined,args);
};
};
/*
Here's your shorthand syntax
*/
var callback = f(ok,10,10);
console.log(callback());