箭头函数的this在定义时就被确定了,箭头函数没有自己的 this 值,箭头函数中所使用的 this 都是来自函数作用域链,箭头函数中的this从上层作用域寻找。
apply无法改变箭头函数的this指向
由于对象是作为对象字面量的属性定义的,对象字面量在全局代码中定义,因此,箭头函数内部的this值与全局函数的this值相同 代码:
<script>
var x = {
x: 1,
toString() { return x }
};
var y = {
y: 1,
toString() { return this.y }
};
console.log(y == 1)
console.log(x.toString())
console.log(NaN === NaN)
console.log(NaN !== NaN)
console.log(true == 2)
console.log(true == '1')
console.log('[object Object]' == { x: '1' })
console.log('1,2,3' == [1, 2, 3])
console.log(Object.is(NaN, NaN));
window.id = 0
const obj = {
id: 1,
b: () => {
console.log(this.id)
},
c: function () {
console.log(this.id)
}
}
class people {
constructor() {
this.id = '001'
}
d = () => {
console.log(this.id)
}
e() {
console.log(this.id)
}
}
obj.b()
obj.c()
var p = new people()
obj.fn1 = p.d
obj.fn2 = p.e
obj.fn1()
obj.fn2()
|