<script>
var a = '111111'
var obj = {
a: 1,
b: function () {
console.log(this)
console.log(this.a)
},
c: function () {
let that = this
return function () {
console.log(that)
console.log(that.a)
}
},
d: function () {
return function () {
console.log(this)
console.log(this.a)
}
},
e: function () {
return () => {
console.log(this)
console.log(this.a)
}
},
f: () => {
return () => {
console.log(this)
console.log(this.a)
}
}
}
obj.b()
obj.c()()
obj.d().call(obj)
obj.d()()
obj.e()()
obj.f()()
</script>
function 函数名(){} //定义
函数名() //执行
xxx。函数名() //等价执行,xxx就是this
obj。d // 得到一个普通函数
obj。d() //普通函数执行得到小普通函数
obj。d()() //小普通函数执行
window。obj。d()()// 等价执行小普通函数,普通函数中的this就是window
网友评论