聊一聊JS中this的指向问题_Javascript教程-查字典教程网
聊一聊JS中this的指向问题
聊一聊JS中this的指向问题
发布时间:2016-12-30 来源:查字典编辑
摘要:JS中的this指向一直是个让人头疼的问题,想当初我学的是天昏地暗,查了好多资料,看的头都大了,跟他大战了那么多回合,终于把它搞定个七八分,...

JS中的this指向一直是个让人头疼的问题,想当初我学的是天昏地暗,查了好多资料,看的头都大了,跟他大战了那么多回合,终于把它搞定个七八分,其实往往都是我们复杂化了,现在就让大家轻松看懂this的指向,我会分以下几种情况来说。

this的指向:

1、this 指的是调用当前方法(函数)的那个对象,也就是说函数在谁那被调用,this就指的是谁。

来看两个栗子:

oBtn.onclick = function(){ alert(this); //oBtn } oBtn[i].onclick = fn1; function fn1(){ alert(this); //oBtn }

很容易看出,函数是在按钮对象被点击的时候调用,所以this指的是obtn,这两种情况是等同的是,只是调用函数的写法不同。

2 当函数里面嵌套函数的时候,嵌套的那个函数里面的this指的是window,不要过分深究这个原因,因为这是JS的一个特性。

来看个栗子:

oBtn.onclick = function(){ alert(this); //oBtn(记得这里还是oBtn) fn1(); } function fn1(){ alert(this); // window }

3 、对于上述情况,当我们需要fn1里面的this指向按钮的时候怎么办呢,这个时候有两种方法。

1) 将this作为参数传函数去

2) 将this保存起来赋给另一个变量

来看两个栗子:

oBtn.onclick = function(){ alert(this); //oBtn fn1(this); 1 将上面的this作为参数传函数去 } function fn1(obj){ alert(obj); // oBtn }

var that = null; oBtn[i].onclick = function(){ alert(this); //oBtn that = this ;// 将上面的this保存起来赋给另一个变量 fn1(); } function fn1(){ alert(that); // 指向oBtn }

OK,this的指向,最基础的也就这几种,很多复杂的也是由基础演变的。有没有轻松掌握呢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持查字典教程网。

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类