鍍金池/ 教程/ HTML/ 淺談 javascript 中 this 在事件中的應(yīng)用
淺談 JavaScript 之事件綁定
淺談 javascript 中字符串 String 與數(shù)組 Array
淺談 javascript 中基本包裝類型
淺談 JavaScript Math 和 Number 對象
淺談 Javascript 的靜態(tài)屬性和原型屬性
淺談 JavaScript 中定義變量時有無 var 聲明的區(qū)別
淺談 JavaScript Array 對象
淺談 JavaScript 函數(shù)參數(shù)的可修改性問題
淺談 javascript 中的 instanceof 和 typeof
淺談 JavaScript 中 Date (日期對象),Math 對象
淺談 Javascript 執(zhí)行順序
淺談 javascript 函數(shù)屬性和方法
淺談 JavaScript 中面向?qū)ο蠹夹g(shù)的模擬
淺談 javascript 的原型繼承
淺談 javascript 事件取消和阻止冒泡
根據(jù)一段代碼淺談 Javascript 閉包
淺談 Javascript 面向?qū)ο缶幊?/span>
淺談 javascript 六種數(shù)據(jù)類型以及特殊注意點
淺談 Javascript 變量作用域問題
淺談 javascript 函數(shù)內(nèi)部屬性
淺談 javascript 中自定義模版
淺談 JavaScript 字符集
淺談 javascript 面向?qū)ο缶幊?/span>
淺談 JavaScript 框架分類
淺談 JavaScript 中的 Math.atan() 方法的使用
淺談 Javascript 數(shù)組與字典
淺談 JavaScript 數(shù)據(jù)類型及轉(zhuǎn)換
淺談 javascript 的調(diào)試
淺談 Javascript 嵌套函數(shù)及閉包
淺談 javascript 回調(diào)函數(shù)
淺談 JavaScript Date 日期和時間對象
淺談 Javascript 中的 Function 與 Object
淺談 JavaScript 數(shù)據(jù)類型
淺談 javascript 中 this 在事件中的應(yīng)用
淺談 javascript 中的閉包
淺談 javascript 函數(shù)劫持
淺談 Javascript 中深復(fù)制
淺談 JavaScript 函數(shù)節(jié)流
淺談 JavaScript 中的 String 對象常用方法
淺談 JavaScript 事件的屬性列表
淺談 JavaScript 函數(shù)與棧
淺談 JavaScript 的事件
淺談 javascript 中的作用域
淺談 JavaScript 的執(zhí)行效率
淺談 Javascript 事件模擬
淺談 JavaScript function 函數(shù)種類
淺談 javascript 歸并方法
淺談 javascript 迭代方法
淺談 JavaScript 編程語言的編碼規(guī)范
淺談 JavaScript 實現(xiàn)面向?qū)ο笾械念?/span>
淺談 Javascript 鼠標(biāo)和滾輪事件
淺談 Javascript Base64 加密解密
淺談 Javascript 中勻速運動的停止條件
淺談 javascript 實現(xiàn)八大排序
淺談 javascript 的分號的使用
淺談 javascript 中 createElement 事件
淺談 javascript 的數(shù)據(jù)類型檢測
淺談 javascript 對象模型和 function 對象
淺談 Javascript 如何實現(xiàn)勻速運動
淺談 JavaScript 字符串與數(shù)組
淺談 javascript 面向?qū)ο蟪绦蛟O(shè)計
淺談 Javascript 事件處理程序的幾種方式

淺談 javascript 中 this 在事件中的應(yīng)用

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

[js] view plaincopy
function dosomething(){ this.style.color="#fff"; }  

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

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

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

復(fù)制:

[js] view plaincopy
element.onclick=dosomething;  

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

引用:

[js] view plaincopy
<element onclick="dosomething()">  

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

以上就是本文的全部內(nèi)容了,有需要的小伙伴好好來研究下吧。