js中在用this的时候,会发现有很多莫名其妙的问题。
废话不多说,直接上代码(html代码就不贴了):
- $(document).ready(function(){
- var arr=[{name: '张三',age:18},{name: '李四',age: 20}];
- var len=arr.length;
- var arr=this.arr;
- $("#Function").on("click",function(){
- for(var i=0;i<len;i++){
- console.log(arr[i].name)
- }
- })
})
以上代码执行起来为何会报错呢? 具体报错见下图:
这个问题是我一个朋友提的,代码不多,可是问题很诡异,一点一点排查,最后才发现其实就是this的指向问题导致这个错,前面this指向的是数组arr,可是到click事件里面,this指向了button。