<input type="submit" value="提交" onlick="this.value='提交數據'"/>這裡的this顯然指的是當前對象,即這個提交按鈕。通常,我們使用this的情況都與此類似。但是有人麼情況不是這樣的呢?
大家看看這個例子:
var foo = function(){ console.log(this); } foo(); new foo();比較一下foo()和new foo()的執行結果,你會發現,前者的this指向的並非foo本身,而是當前頁面的window對象,而new foo()才真正的指向foo。這是為甚麼呢?
其實這牽涉到JavaScript的一條重要特性,就是所謂的"閉包(Closure)"。閉包這個概念說複雜也不複雜,但也不是簡單到能用一兩句話說清。現在,我要告訴大家的是,因為閉包的存在,JavaScript中的作用域變得相當重要。
所謂的作用域,簡單的說,就是創意一個函數時在甚麼環境下創建的。而this變數的值,如果沒有指定的話,就是函數當前的作用域。
在前面的例子裡,foo()函數是在全局作用域(這裡)
http://www.cnblogs.com/ruxpinsp1/archive/2008/04/20/1162463.html
沒有留言:
張貼留言