javascript - 这里的this.name为什么是"Window"?
PHP中文网
PHP中文网 2017-04-10 15:43:11
0
11
1248
var name = "Window";
var oPerson = {
    name:"Bob",
    friend:{
      name:"Jonh",
      sayHi:function(){
        alert(this.name);
        }
    }
  };

var sayHi = oPerson.friend.sayHi;
sayHi(); //"Window"
PHP中文网
PHP中文网

认证0级讲师

모든 응답(11)
洪涛

sayHi() = window.sayHi() = sayHi.apply(window)

实际上javascript调用方法a.func(函数)都等价于 func.apply(a),当然前提是要a有func这个属性或者a的原型链上有func属性(即可以获取到函数引用)。

如果省去a的话,就相当于func.apply(null)也就是func.apply(window)

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿