代码描述:javascript this用法。javascript this用法代码下载
this是javascript的一个重点概念,也是一个不大不小的难点,它的指向问题往往会给很多初学者带来很大的困扰。 下面就通过代码实例介绍一下this到底是指向谁,希望能够给需要的朋友带来一定的帮助。 在介绍this之前我们先直接给this的指向下个结论:this永远指向调用它所在函数的对象。
<script> var antzone="51前端"; function done(){ console.log(this.antzone) } done() </script>
上面的代码的输出值为"蚂蚁部落",下面介绍一下原因: 在<script></script>标签根下定义的变量和函数可以认为是为window对象添加的属性或者方法,所以var antzone="蚂蚁部落"相当于window.antzone="蚂蚁部落",函数也是同样的道理,看如下代码:
<script> var antzone="51前端"; function done(){ console.log(this.antzone) } console.log(window.antzone==antzone); console.log(window.done==done); </script>
所以done()函数的执行就相当于window.done(),那么调用此函数的对象就是window,this也就指向window,this.antzone也就相当于window.antzone,所以输出内容为"蚂蚁部落"。再来看一段代码:
<script> var obj=new Object(); obj.antzone="分享互助"; var antzone="51前端"; function done(){ console.log(this.antzone) } obj.func=done; done(); obj.func(); </script>
上面代码的输出值分别是"蚂蚁部落"和"分享互助"。 done()函数的调用对象是window,那么this指向window。 obj.func=done是将函数done赋值给obj对象的一个属性,也就是说obj.func属性存放的是指向done函数对象的引用,所以obj.func()就是obj对象调用此函数,那么this就是指向obj的。再来看一段代码实例:
<script> var antzone="51前端" function a(){ function b(){ console.log(this.antzone) } b() } a() </script>
请绑定手机号,在继续操作
注意:只有绑定手机以后,才可使用网站全部功能