JavaScript中是否有类似C#的lambda语法?

Élo*_*tit 61 javascript

是否有支持lambda语法的JavaScript框架或后期处理器,如C#?

CoffeeScript中的函数定义看起来像lambda,但我没有仔细研究它们.

任何人都可以告诉我,我可以在JavaScript中使用lambda语法吗?

Mat*_*igh 65

ECMAscript 6中包含具有类似语法的Lambda函数,它们被称为"箭头函数".一个例子:

["duck", "cat", "goat"].filter(el => el.length > 3); 回报 ["duck", "goat"]

目前支持最新版本的FirefoxChrome.

要在针对旧浏览器的JavaScript中使用此语法,可以使用可将ES 6编译为更广泛支持的版本的工具 - 例如工具BabelTraceur.


han*_*ans 12

你可以使用typescript(www.typescriptlang.org/):

function (d, i) {
    return "translate(" + d.x + "," + d.y + ")";
}
Run Code Online (Sandbox Code Playgroud)

会成为

(d, i) =>  "translate(" + d.x + "," + d.y + ")"  
Run Code Online (Sandbox Code Playgroud)

还有更多很酷的东西,比如打字:......如果你是这样的话

  • +1:我一直在寻找Javascript中的`()=> {}`等信息...我没有意识到它只是一个我不小心绊倒的Typescript扩展.非常感谢.:) (2认同)

Rub*_*n-J 5

我开始为jQuery创建扩展程序,该扩展程序完全可以满足您的要求。 JS-Lambda

例如在C#中:

  coll.TakeWhile(x => x.index < 3);
Run Code Online (Sandbox Code Playgroud)

看起来像:

 $(coll).TakeWhile("x => x.index < 3");
Run Code Online (Sandbox Code Playgroud)