ES6箭头函数注意事项
2022-01-05 本文已影响0人
苏码码
箭头函数使用注意事项:
1、函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
var str = 'global'
var obj = {
str: 'private',
getStr: () => {
console.log(this.str) // => global
// 绑定的是定义者
// 箭头函数的表现为getStr的value,他被定义在obj对象中,obj的执行上下文就是window
// this.str 实际上就是window.str
}
}
obj.getStr()
2、不可以当做构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。箭头函数没有原型对象
箭头函数中,this指向固定化,本身是没有自己的this,所以不能用作构造函数
3、不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以使用rest参数代替。
var n = 10;
function f() {
return this.n;
}
var obj = {
n:8,
f2:f
}
var obj2 = {
n: 99
}
console.log(obj.f2.call(obj2)) // => 99
// ES6
var n = 10;
var f = () => this.n;
var obj = {
n:8,
f2:f
}
var obj2 = {
n: 99
}
console.log(obj.f2.call(obj2)) // => 10