JavaScript:this是什麼?
定義:this是包含它的函數做爲方法被調用時所屬的對象。
說明:這句話有點咬嘴,但一個多餘的字也沒有,定義很是準確,咱們能夠分3部分來理解它!
1、包含它的函數。2、做爲方法被調用時。3、所屬的對象。
看例子:
function to_green(){
this.style.color="green";
}
to_green();
上面函數中的this指的是誰?
分析:包含this的函數是,to_green
該函數做爲方法被調用了
該函數所屬的對象是。。?咱們知道默認狀況下,都是window對象。
OK,this就是指的window對象了,to_green中執行語句也就變爲,window.style.color="green"
這讓window很上火,由於它並無style這麼個屬性,因此該語句也就沒什麼做用。
咱們在改一下。
window.load=function(){
var example=document.getElementById("example");
example.onclick=to_green;
}
這時this又是什麼呢?
咱們知道經過賦值操做,example對象的onclick獲得to_green的方法,那麼包含this的函數就是onclick嘍,
那麼this就是example引用的html對象嘍。
this的環境能夠隨着函數被賦值給不一樣的對象而改變!
下面是完整的例子:
<script type="text/javascript">
function to_green(){
this.style.color="green";
}
function init_page(){
var example=document.getElementById("example");
example.onclick=to_green;
}
window.onload=init_page;
</script>
<a href="#" id="example">點擊變綠</a>
提問者評價謝謝,解釋的很清楚參考資料: http://hi.baidu.com/tkocn/blog/item/7c66bd02f7395b084afb5150.html
來源: <http://zhidao.baidu.com/link?url=lchIZerOjLaDDbyzpJjGc_Z0PudWaKONxEdPD2TXsnRL9PrzG7K9K2urluQkL6QvyZZkjw6t4QwPQ-MwsnE9Ba>