<script type="text/javascript" src="https://getfirebug.com/firebug-lite.js"></script>
<script>
(function(){
var myLib = function (selector) {
console.log(this);
if(this === window) {
console.log('first if statement executed');
console.log(this);
return new myLib(selector);
}
if(this.window === window){
console.log('second if statement executed');
console.log(this);
return new myLib(selector);
}
};
//expose myLib to the global window object
window.myLib = myLib;
})();
myLib('.someclass')
</script>
Firefoxでは、これがコンソールに記録されるものです。
ステートメントが実行された場合、最初に
ウィンドウが
オブジェクト{}
IE8では、これがコンソールに記録されるものです。
ウィンドウの
2番目のifステートメントが
ウィンドウ
オブジェクト{}を実行しました
myLibが呼び出されたときにこれがIEのウィンドウを指さないのはなぜですか?代わりにthis.windowが窓を指していますか?