1、普通函数
this指向,调用该函数的作用域
var name = 'window'
function getName () {
console.log(this.name)
}
var A = {
name: 'A',
f: getName
}
getName() // window
A.f() // A
var B = {
name: 'B',
f: A.f // A和B的函数f,都是指向同一个【引用地址】
}
B.f() // B
2、箭头函数
this指向箭头函数的上级作用域
var name = 'window'
var A = {
name: 'A',
f: () => {
console.log(this.name)
}
}
A.f() // window
var D = {
name: 'D',
f: function() {
var func = () => {
console.log(this.name)
}
}
}
D.f() // D
本文探讨了JavaScript中普通函数与箭头函数的this指向问题。在普通函数中,this根据调用方式不同(作为对象方法或独立调用)指向会有所变化,而在箭头函数中,this始终保持其定义时的作用域。通过示例展示了在不同场景下this的取值,帮助理解JavaScript的函数调用上下文。

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



