匿名函数声明速记javascript

时间:2013-06-13 05:13:27

标签: javascript closures

我想知道是否有任何方法可以通过使用像Google Closure这样的预处理器/编译器来缩短JavaScript中的匿名函数声明。我认为回调非常简洁。

例如,通常我会用这种方式写一个qunit测试用例:

test("Dummy test", function(){ ok( a == b );});

我正在寻找一些受Clojure启发的语法:

test("Dummy test", #(ok a b));

有可能吗?

1 个答案:

答案 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());