1. 程式人生 > >javascript之this指向的坑

javascript之this指向的坑

 

js中在用this的時候,會發現有很多莫名其妙的問題。

廢話不多說,直接上程式碼(html程式碼就不貼了):

  1. $(document).ready(function(){
  2. var arr=[{name: '張三',age:18},{name: '李四',age: 20}];
  3. var len=arr.length;
  4. var arr=this.arr;
  5. $("#Function").on("click",function(){
  6. for(var i=0;i<len;i++){
  7. console.log(arr[i].name)   
  8. }  
  9. })

})

以上程式碼執行起來為何會報錯呢? 具體報錯見下圖:

 

這個問題是我一個朋友提的,程式碼不多,可是問題很詭異,一點一點排查,最後才發現其實就是this的指向問題導致這個錯,前面this指向的是陣列arr,可是到click事件裡面,this指向了button。