箭头函数中的this,是在定义的时候指定的
普通函数中的this是在调用的时候找到的
变量作用域:
es5变量作用域由function决定,es6作用域由{}决定
function sum(a,b){
console.log(a+b);//得到30
}
sum(10,20);
匿名函数如下
var sum = function(a,b){
console.log(a+b);//得到30
}
sum(10,20);
箭头函数如下
//小括号里是参数,箭头花括号是执行体
var sum = (a,b)=>{
console.log(a+b);//得到30
}
sum(10,20);
暂时看不出太大区别
再来看一段眼熟的
已经改成箭头函数
var obj = {
students:["张三","李四","王五"],
showStudent:function(){
return ()=>{
//没有箭头函数,this指向就会发生变化,就不会指向当前对象
console.log(this.students[0]);//这里可以打印出“张三”
}
}
}
var f = obj.showStudent();
f();
var a = function(){
return 10;
}
var a = ()=>{
return 10;
}
console.log(a());//得到结果10
var fn = ()=>10;
console.log(fn());//打印10
var fn = (a,b)=>a+b;
console.log(fn(10,20));//打印30