var x =1;
function foo() {
var x=10
function fn(){
console.log(this)//obj
console.log(this.x)//100
console.log(x) //10?
}
obj= {
x:100,
show:(function (f) {
f.call(obj)
console.log('x:',x) //10?
})
}
obj.show(fn)
}
foo()
这段代码this.x 是在上下文中的x 打印100我懂
这个x指什么,为什么打印的是10? 我觉得这个x不应该默认是obj上下文中的x吗?
this是一个对象, this.x 就是访问this对象的x属性。
console.log(x)中的x是变量,就是用 var x=10声明的变量
一个是变量 一个是属性