function fn() {
this.x = 100
}
fn() //这里调用函数的对象是window,相当于给window添加了x属性,属性值为100
console.log(x)
var obj = {
name: "jack",
age: 10,
setAge: function (age) {
this.age = age
}
}
obj.setAge(30)//这里是obj调用的函数,所以this为obj,函数运行相当于obj.age=30,覆盖之前的值
console.log(obj)
var fn = obj.setAge
fn(40)//这里直接调用函数,所以调用者为window,window.age=40
console.log(age, obj.age)//因为第二次调用函数的是window,所以obj.age任然为30