熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

通過一段代碼簡單說js中的this的使用

2013-11-15 12:11:33  來源: JSP教程 
本文通過一段代碼與大家簡單說說js中this的使用及相關問題感興趣的朋友可以參考下哈希望對大家有所幫助  

  今天有朋友說遇到如下代碼讓我幫解釋原因

復制代碼 代碼如下:
var name = "The Window";
var object = {
name : "My Object"
getNameFunc : function(){
return function(){
return thisname;
};
}
};

  
alert(objectgetNameFunc()());原因是js的this是動態決定的和你調用方式有直接關系

簡單說如果你調用一個函數的時候使用“對象函數名”的方式那麼this就是這個(點)之前的對象否則是window
比如你在調用objectgetNameFunc()的時候getNameFunc函數體中的this是剛聲明的object如果你寫成

復制代碼 代碼如下:
var func = objectgetNameFunc;
func();

  
這時候getNameFunc函數體中的this是window雖然是同一函數調用方式的不同決定了this的不同
同樣的道理objectgetNameFunc()返回的是一個函數引用加一個括號就是讓函數執行其實相當於如下代碼

復制代碼 代碼如下:
var func = objectgetNameFunc();
alert( func() );

  
函數前沒有“對象”這種形式所以執行函數時候this是window結果就很明顯了

以後我會寫一篇關於js this的文章歡迎大家關注我的CSDN博客tt


From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20473.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.