2012-07-05

Javascript window object

在 Javascript 指派變數有兩種方式:
var a = 123;

aObject.a = 123;
看似不同,其實是一樣的,上面的寫法可以換成下面的方式。
window.a = 123;

// 可以這樣呼叫
a;

// 也可以這樣呼叫
window.a;

也就是說,所有 global 變數或叫做 top-level 變數,都是 window 物件的 properties,function 也是一樣的。
function b() {
return 456;
}

// 可以這樣呼叫
b();

// 也可以這樣呼叫
window.b();
除了自行定義的變數或 function,Javascript 自身定義的變數與 function 也是一樣的用法,可用 window 呼叫也可以不用。
parseInt('789');

// 也可以這樣用
window.parseInt('789');
最神奇的是 this,在 global scope 裡也有 context
var a = 123;
var that = this;

$(function(){
   
    neil.log(a);
    neil.log(window.a);
    neil.log(that.a);
   
    neil.log(b());
    neil.log(window.b());
    neil.log(that.b());
   
    neil.log(parseInt(789));
    neil.log(window.parseInt(789));
    neil.log(that.parseInt(789));
});

function b() {
    return 456;
}
在 global scope 裡,可以用 this 代表 window。

沒有留言:

張貼留言