箭头函数中的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
箭头函数与普通函数的this指向及作用域
博客主要介绍了箭头函数和普通函数中this指向的区别,箭头函数的this在定义时指定,普通函数的this在调用时确定。还提及了es5和es6变量作用域的不同,es5由function决定,es6由{}决定,并给出了匿名函数和箭头函数示例。
1651

被折叠的 条评论
为什么被折叠?



