我想知道是否有任何方法可以通过使用像 Google Closure 这样的预处理器/编译器来缩短 JavaScript 中的匿名函数声明。我认为回调会很整洁。
例如,通常我会这样写一个 qunit 测试用例:
test("Dummy test", function(){ ok( a == b );});
我正在寻找一些受 Clojure 启发的语法,如下所示:
test("Dummy test", #(ok a b));
可能吗?
我想知道是否有任何方法可以通过使用像 Google Closure 这样的预处理器/编译器来缩短 JavaScript 中的匿名函数声明。我认为回调会很整洁。
例如,通常我会这样写一个 qunit 测试用例:
test("Dummy test", function(){ ok( a == b );});
我正在寻找一些受 Clojure 启发的语法,如下所示:
test("Dummy test", #(ok a b));
可能吗?
无需担心预处理器或编译器,您可以执行以下操作来缩短回调语法。与此有关的一件事是未处理“此”的范围……但是对于您的用例,我认为这并不重要:
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());