1. 函数带参
//es6
var f = v=> v;
//es5
var f = function(v){
return v;
}
var f = function(a,b){
return a+b;
}
var f = (a,b)=>a+b;
2.函数无参
//es 5
var f = function(){
return 4;
}
//es6
var f = ()=> 4;
3.箭头函数的this
箭头函数没有自己的this,而是引用外层的this
// ES6
function foo() {
setTimeout(() => {
console.log('id:', this.id);
}, 100);
}
// ES5
function foo() {
var _this = this;
setTimeout(function () {
console.log('id:', _this.id);
}, 100);
}
//2
function Timer() {
this.s1 = 0;
this.s2 = 0;
/* setInterval(function () {
this.s2++;
}, 1000);*/ // this 指向window
setInterval(()=>{
this.s1++ //this 指向time this绑定定义时所在的作用域(即Timer函数),
},1000)
}
var timer = new Timer();
setTimeout(() => console.log('s1: ', timer.s1), 3100);