javascript this用法和簡單例項
一.在HTML元素屬性中直接使用this:
這種用法儘管現在已經不推薦,但是由於使用簡單,所以至今還在廣泛使用,例項程式碼如下:
[HTML] 純文字檢視 複製程式碼<script type="text/javascript"> function a(myobject){ alert(myobject.name) } </script> </style> </head> <body> <a href="#" onClick="a(this)" name="螞蟻部落歡迎您">螞蟻部落</a> </body> </html>
以上程式碼當點選連結的時候能夠彈出"螞蟻部落歡迎您",這說明這時this的指向是當前this所在的元素。
二.DHTML方式註冊處理函式時this的指向:
此種註冊事件處理函式的方式和上一個方式一樣常見,程式碼如下:
[HTML] 純文字檢視 複製程式碼<script type="text/javascript"> window.onload=function(){ var mylink=document.getElementById("mylink"); mylink.onclick=function(){ alert(this.name); } } </script> </style> </head> <body> <a href="#" name="螞蟻部落歡迎您" id="mylink">螞蟻部落</a> </body> </html>
以上程式碼實現了和方式一相同的功能,這說明this同樣是指向連結。
三.DOM方式繫結事件處理函式:
這是比較推薦的一種事件處理函式註冊方式,程式碼如下:
[HTML] 純文字檢視 複製程式碼<script type="text/javascript"> window.onload=function(){ var mylink=document.getElementById("mylink"); mylink.addEventListener("click",a); function a(){ alert(this.name) } } </script> </style> </head> <body> <a href="#" name="螞蟻部落歡迎您" id="mylink">螞蟻部落</a> </body> </html>
以上程式碼同樣可以彈出“螞蟻部落歡迎您”,這說明this是指向連結a的。
四.物件(類)中使用this關鍵字:
[HTML] 純文字檢視 複製程式碼<script type="text/javascript"> var address="全域性變數"; function Person(){ var userName="螞蟻部落"; this.address="青島市南區"; } Person(); alert(address); </script>
以上程式碼可以彈出"青島市南區",將程式碼稍作修改:
[HTML] 純文字檢視 複製程式碼<script type="text/javascript"> var address="全域性變數"; function Person(){ var userName="螞蟻部落"; this.address="青島市南區"; } var operson=new Person() alert(address); alert(operson.address); </script>
以上程式碼可以分別彈出"全域性變數"和"青島市南區"。
由以上幾個程式碼的表現總結如下:
this到底指向哪個物件,答案是:this指向呼叫函式的物件。那麼我們沿著此思路再回頭看以上例項:
第一個:
[HTML] 純文字檢視 複製程式碼<a href="#" onClick="a(this)" name="螞蟻部落歡迎您">螞蟻部落</a>
大家不要誤以為是連結物件呼叫的函式a,其實是window物件呼叫的函式a,那麼為什麼this還是指向連結呢,程式碼如下:
[HTML] 純文字檢視 複製程式碼<script type="text/javascript"> function a(myobject) { alert(myobject.name) }</P> <P>window.onload=function() { var mylink=document.getElementById("mylink"); mylink.onclick=function() { a(this); } } </script> </style> </head> <body> <a href="#" onClick="a(this)" name="螞蟻部落歡迎您" id="mylink">螞蟻部落</a> </body> </html>
以上程式碼就比較清晰了,也就是說在元素屬性中繫結事件處理函式和等價於以上形式。在這裡函式a是由window物件呼叫的,a(this)也可以改成window.a(this)。
第二個和第三個就不用多說了,函式呼叫物件都是連結物件。
第四個可能會迷糊一些,當Person作為一個普通函式使用時,它的呼叫物件是window物件,那麼this自然指向window,那麼this.address="青島市南區"也就相當於window.address="青島市南區",所以彈出"青島市南區"。當Person最為一個類來使用建立一個物件例項的時候,那麼this就指向那個建立的物件例項,那麼自然就會分別彈出"全域性變數"和"青島市南區"。
相關文章
- $.ajax()函式用法簡單例項函式單例
- javascript事件冒泡簡單例項JavaScript事件單例
- javascript閉包簡單程式碼例項JavaScript
- javascript作用域簡單例項程式碼JavaScript單例
- JavaScript 動畫效果簡單例項程式碼JavaScript動畫單例
- javascript的靜態方法和例項方法簡單介紹JavaScript
- javascript求餘和除法運算簡單例項程式碼JavaScript單例
- javascript 物件合併程式碼例項簡單分析JavaScript物件
- JavaScript簡單的日曆效果程式碼例項JavaScript
- javascript物件導向繼承的簡單例項JavaScript物件繼承單例
- websocket簡單例項Web單例
- JavaScript單例模式概念與例項JavaScript單例模式
- javascript名稱空間使用簡單程式碼例項JavaScript
- javascript判斷奇數簡單程式碼例項分享JavaScript
- javascript閉包的應用簡單程式碼例項JavaScript
- javascript實現的動畫效果簡單例項程式碼JavaScript動畫單例
- javascript的this用法簡單介紹JavaScript
- javascript arguments用法簡單介紹JavaScript
- javascript獲取字串的hash值簡單程式碼例項JavaScript字串
- javascript的clientLeft和clientTop屬性用法簡單介紹JavaScriptclient
- javascript with()語句用法簡單介紹JavaScript
- innerText和innerHTML區別簡單程式碼例項HTML
- JS中排序的用法和例項JS排序
- opengl簡單入門例項
- Spark 簡單例項(基本操作)Spark單例
- javascript實現的圖片簡單切換程式碼例項JavaScript
- javascript實現的簡單驗證碼效果程式碼例項JavaScript
- javascript引用型別資料特點簡單程式碼例項JavaScript型別
- javascript顛倒陣列元素順序簡單程式碼例項JavaScript陣列
- javascript innerText屬性用法簡單介紹JavaScript
- javascript call()函式用法簡單介紹JavaScript函式
- javascript trim()函式用法簡單介紹JavaScript函式
- javascript的分號(;)用法簡單介紹JavaScript
- js選項卡簡單程式碼例項JS
- Excel isna函式的用法和例項Excel函式
- javascript新增和刪除select下拉選單option項程式碼例項JavaScript
- javascript使用cookie記錄使用者資訊簡單程式碼例項JavaScriptCookie
- javascript動態設定元素的樣式簡單程式碼例項JavaScript