es5
var fn = function(a, b) {
return a + b;
}
es6 箭头函数写法,当函数直接被return时,可以省略函数体的括号
const fn = (a, b) => a + b;
// es5
var foo = function() {
var a = 20;
var b = 30;
return a + b;
}
// es6
const foo = () => {
const a = 20;
const b = 30;
return a + b;
}
1、头函数可以替换函数表达式,但是不能替换函数声明
2、箭头函数中,没有this。如果你在箭头函数中使用了this,那么该this一定就是外层的this
/**
带返回值,传多个参数
*/
let add0 = function(a,b){
return a+b;
};
let add1 = (a, b)=>a+b;
/**
- 带返回值,只有一个参数,圆括号可以省去
*/
var one0 = function(obj) {
return obj;
};
let one1 = obj => obj;
/**
有返回值,不带参数
*/
var two1 = function () {
return 11;
};
let two2 = () => 11;
/**
无返回值,不带参数
*/
var tree = function () {
};
let tree1 =() => {
};
/**
无返回值,带一个参数
*/
var four = function (e) {
};
let four1 =e => {
};
/**
无返回值, 带多个参数
*/
var five = function (a, b) {
};
let five1 = (a, b) => {
};
箭头函数中的this指向的是定义时的this,而不是执行时的this。
普通函数中的this 指向调用该函数的对象
还不太了理解this