文章出處

this關鍵字在javascript中是非常強大的,但是如果你不清楚它是怎么工作的就很難使用它.

 1 function dosomething(){ this.style.color="#fff"; } 

上面這段代碼中的this指向什么呢,運行dosomething()會輸出什么呢?

在javascript中,this總是指向當前執行的這個函數,或者把函數作為方法調用的這個對象.當我們在頁面上定義dosomething()這個方法后,this的所有者就是當前的頁面,或者說是全局對象.

所以我們執行dosomething()這個函數,會引發錯誤.因為函數的this指向的是全局對象window,而window對象沒有style屬性.

 

復制:

element.onclick=dosomething;

dosomething()現在被整個復制到onclick屬性上作為一個方法.所以如果這個事件執行的話,this就指向這個HTML元素,相應HTML元素的color就會改變.dosomething每次復制到事件上,this就會指向當前執行這個方法的html元素.

 

引用:

<element onclick="dosomething()">

此時你沒有復制這個方法,而是引用了這個方法,onclick屬性并不包含實際的方法,僅僅只是一個方法的調用.當我們執行這個方法時,this再次指向全局window對象并引發錯誤.

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()