es6新增箭头函数,主要解决了如下几点问题es6
var obj = {
a:
1,
b:
2,
c:
function(){
setTimeout(
()=>{
console.log(this);
},
1000)
},
d:
function(){
setTimeout(
function(){
console.log(this)
},
1000)
}
}
obj.c();
//obj
obj.d();
//window
|
setTimeout的this为window,因此d()会输出window,而使用箭头函数则会输出obj函数
var obj = {
a:
function(){
console.log(this)
},
b:
()=>{
console.log(this);
}
}
obj.a()
//obj
obj.b()
//window
|
可见箭头函数里面的this是离他最近的做用域链的thisui
var x = new obj.a();
var y = new obj.b();//报错
|
可见箭头函数不能使用new命令。this
var obj = {
a:
function(){
console.log(arguments)
},
b:
()=>{
console.log(arguments);
}
}
obj.a()
obj.b()
//arguments is not defined
|
没有arguments。spa