====== アロー関数 ======
===== 基本構文 =====
//基本
let getPlusValue = (a, b) => {
return a + b
}
//中身が1文なら中括弧{}を省略できる
let getPlusValue = (a, b) => return a + b
//引数がひとつなら、丸括弧()を省略できる
let getPlusValue = a => return a
//引数がなければ括弧は必要
let getPlusValue = () => return 9
===== ES6以前との比較 =====
//ES6以前
let doFunc = function(x){
console.log(x)
}
//アロー関数を使った書き方…functionがない
let doFunc = (x) => {
console.log(x)
}
===== thisについて =====
ES6以前の書き方の中にあるthisは、コードを記述した時点はthisはきまらず、呼び出されたオブジェクトになった。
アロー関すではコードを記述した時点で、thisを定義したコンテキストとする。
[[https://qiita.com/mejileben/items/69e5facdb60781927929|【JavaScript】アロー関数式を学ぶついでにthisも復習する話]]
[[https://qiita.com/may88seiji/items/4a49c7c78b55d75d693b|JavaScript アロー関数を説明するよ]]
===== サンプル =====
async getAsyncStorage(name) {
const value = await AsyncStorage.getItem(name)
return value
}
getAsyncStorage = async(name)=>{
const value = await AsyncStorage.getItem(name)
return value
}
===== argumentsオブジェクトを持たない =====
アロー関数内部ではargumentsオブジェクトにアクセスすることができない。
var fn1 = function (param) {console.log(arguments[0]);};
fn1('hoge'); // hoge
var fn2 = (param) => {console.log(arguments[0])};
fn2('fuga'); // Error: arguments is not defined