react es6语法 之 => 箭头函数

参考:https://www.cnblogs.com/secretAngel/p/9699356.html

(1)、只有一个参数且只有一句表达式语句的,函数表达式的花括号可以不写

let test = a => a; // 只有一个参数a,这里的表达式相当于 "return a"

(2)、如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。

let getData = () => { 表达式语句... } // 没有任何参数

let getInit = (name, date) => { 表达式语句... } // 两个及以上参数

(3)、返回值为一个对象时,需要使用括号()将该对象包裹起来,否则会将{ }内的语句当成表达式而报错,如下:

// 返回对象 { firstName: firstName, lastName: lastName }

let hello = (firstName, lastName) => ({ firstName: firstName, lastName: lastName })

(4)、匿名函数的时候

①只有一个参数:a => a++; // 相当于 function(a) { return a++; }

②不带参数:() => { 表达式语句... }

③两个及以上参数:(a, b) => { 表达式语句; }

***在箭头函数中,箭头函数本身没有自己的this对象,其内部的this就是箭头函数外层代码块的this,并非箭头函数本身***

***箭头函数体内的this对象,指向定义箭头函数时所在的对象,而不是箭头函数本身***

参考:https://www.cnblogs.com/secretAngel/p/9699356.html

(1)、只有一个参数且只有一句表达式语句的,函数表达式的花括号可以不写

let test = a => a; // 只有一个参数a,这里的表达式相当于 "return a"

(2)、如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。

let getData = () => { 表达式语句... } // 没有任何参数

let getInit = (name, date) => { 表达式语句... } // 两个及以上参数

(3)、返回值为一个对象时,需要使用括号()将该对象包裹起来,否则会将{ }内的语句当成表达式而报错,如下:

// 返回对象 { firstName: firstName, lastName: lastName }

let hello = (firstName, lastName) => ({ firstName: firstName, lastName: lastName })

(4)、匿名函数的时候

①只有一个参数:a => a++; // 相当于 function(a) { return a++; }

②不带参数:() => { 表达式语句... }

③两个及以上参数:(a, b) => { 表达式语句; }

***在箭头函数中,箭头函数本身没有自己的this对象,其内部的this就是箭头函数外层代码块的this,并非箭头函数本身***

***箭头函数体内的this对象,指向定义箭头函数时所在的对象,而不是箭头函数本身***