var name ="Jerry";functionfun(){
console.log(name);}var o ={
name:"Tom",
sayName: fun
}
console.log(o.sayName === fun);//trun
但是分别调用其函数打印出来的结果就不对了:
打印o.sayName()结果是一个object
以方法的形式调用,哪个对象调用this就是哪个对象
var name ="Jerry";functionfun(){
console.log(this);}var o ={
name:"Tom",
sayName: fun
}
o.sayName();//Object { name: "Tom", sayName: fun() }
打印fun()结果是window
以函数调用时,this永远是window
var name ="Jerry";functionfun(){
console.log(this);}var o ={
name:"Tom",
sayName: fun
}fun();//Window http://127.0.0.1:5500/exercise.html
例子:
var name ="Jerry";functionfun(){
console.log(this.name);}var o1 ={
name:"Tom",
sayName: fun
}var o2 ={
name:"Lucy",
sayName: fun
}fun();//Jerry
o1.sayName();//Tom
o2.sayName();//Lucy