
ES2015(ES6)の即時関数
たまにES2015(ES6)を使用しているのに即時関数をこのように記述しているコードを見かける。
var a = 'foo';
var b = 'bar';
(function() {
var a = 1;
var b = 2;
function add(a, b) {
return console.log(a + b); // => 3
}
add(a, b);
})();
// ここはfoobarを出したい
console.log(a + b); // => 'foobar'
即時関数にもアロー関数が利用できるため下記のようにすればもっと短く書ける。
var a = 'foo';
var b = 'bar';
(() => {
var a = 1;
var b = 2;
function add(a, b) {
return console.log(a + b); // => 3
}
add(a, b);
})();
// ここはfoobarを出したい
console.log(a + b); // => 'foobar'
さらに引数がないのであればletを使用すれば関数自体がいらなくなるためさらに短く書ける。
let a = 'foo';
let b = 'bar';
{
let a = 1;
let b = 2;
function add(a, b) {
return console.log(a + b); // => 3
}
add(a, b);
}
// ここはfoobarを出したい
console.log(a + b); // => 'foobar'
以上、ES2015(ES6)では必ずletを使用しようのコーナーでした。


