首页 > 分享 > 为什么要在函数内部声明 var that = this 呢

为什么要在函数内部声明 var that = this 呢

最新推荐文章于 2021-07-28 14:48:06 发布

weixin_30772261 于 2018-03-19 09:03:00 发布

看一个例子

$('#conten').click(function(){ //this是被点击的#conten var that =this; $('.conten').each(function(){ //this是.conten循环中当前的对象 //that仍是刚才被点击我的#conten }) })

this对象在程序中随时会改变,而var  that = this之后,that不会改变,仍然指向之前的this,这样就不会找不到原来的对象

tab.prototype.init = function(){ for(var i=0,len =this.span.length;i<len;i++){ var that = this; that.span[i].index =i; that.span[i].onclick = function(){ that.show(this.index); } } this.show(1); }

这个例子中,如果将that.show(this.index) 改为 this.show(this.index),此时 this.show中this指向that.span[i],此时会因为找不到that.span[i]而报错。而改成that.show(this,index),此时,that因为前面申明 var that =this,that指向外层。

理解尚不到位我再查查资料。。。。。。

转载于:https://www.cnblogs.com/lrgupup/p/8599174.html

相关知识

JS中 let 和var的区别
js(=>) 箭头函数 详细解说 案例大全
Kotlin 学习笔记 (九) 可怕的 lambda 及 高级函数
梅花为什么一定要在冬天开放呢
HTML + CSS + JavaScript 两小时快速入门教程
JavaScript DOM编程艺术
Golang复习笔记要点
我的var t=setInterval(function(){svg.attr(“transform”,“rotate(10)”);},1000);为什么不能一直实现旋转
前端
python函数基本操作

网址: 为什么要在函数内部声明 var that = this 呢 https://m.huajiangbk.com/newsview1087207.html

所属分类:花卉
上一篇: 寻物 | 西瓜为什么叫西瓜?
下一篇: 大林寺桃花为什么晚开?