This plugin converts JavaScript anonymous functions to arrow function expressions (introduced in ES 2015).
It converts this:
function (p1, p2) {
// some code
}
to this:
(p1, p2) => {
// some code
}
and converts this:
function (n) { return n * 2; }
to this:
n => n * 2
Place the cursor anywhere inside the function, even on the function
keyword,
and run the JsAnonFnToArrowFn
command.
This command is mapped to <leader>af unless that is already mapped to something else.
The easiest way to install this is to use Pathogen and "git clone" this repository into the .vim/bundle directory.
This plug-in will perform a simple transformation from a function declared with
the function
keyword (a normal function) to an arrow function expression.
There are differences between these that can affect the results.
When an arrow function has an expression body, the return
keyword is
implicit. However, when it has statement block, the return
keyword is still
required just like a normal function.
var example1 = function () { foo(); }; // example1() returns undefined
var example2 = () => { foo(); }; // example2() returns undefined
var example3 = () => foo(); // example3() returns the return value of foo()
Another difference is that normal functions always receive a this
value,
whereas arrow functions inherit the this
value from its context.
$('a').each(function () { console.log(this); }; // logs all the "a" DOM elements
$('a').each(() => { console.log(this); }; // logs the window object
Resources: