千家信息网

JavaScript中this如何用

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍"JavaScript中this如何用",在日常操作中,相信很多人在JavaScript中this如何用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"J
千家信息网最后更新 2026年10月31日JavaScript中this如何用

这篇文章主要介绍"JavaScript中this如何用",在日常操作中,相信很多人在JavaScript中this如何用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"JavaScript中this如何用"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

this是面向对象语言中一个重要的关键字,理解并掌握该关键字的使用对于我们代码的健壮性及优美性至关重要。而javascript的this又有区别于Java、C#等纯面向对象的语言,这使得this更加扑朔迷离,让人迷惑。

this使用到的情况:

1. 纯函数

2. 对象方法调用

3. 使用new调用构造函数

4. 内部函数

5. 使用call / apply

6.事件绑定

1. 纯函数

var name = 'this is window'; //定义window的name属性 function getName(){  console.log(this); //控制台输出: Window //this指向的是全局对象--window对象  console.log(this.name); //控制台输出: this is window / } getName();

运行结果分析:纯函数中的this均指向了全局对象,即window。

2. 对象方法调用

var name = 'this is window'; //定义window的name属性,看this.name是否会调用到 var testObj = {  name:'this is testObj',  getName:function(){  console.log(this); //控制台输出:testObj //this指向的是testObj对象  console.log(this.name); //控制台输出: this is testObj  } } testObj.getName();

运行结果分析:被调用方法中this均指向了调用该方法的对象。

3. 使用new调用构造函数

function getObj(){  console.log(this); //控制台输出: getObj{} //this指向的新创建的getObj对象 } new getObj();

运行结果分析:new 构造函数中的this指向新生成的对象。

4. 内部函数

var name = "this is window"; //定义window的name属性,看this.name是否会调用到 var testObj = {  name : "this is testObj",  getName:function(){  //var self = this; //临时保存this对象  var handle = function(){  console.log(this); //控制台输出: Window //this指向的是全局对象--window对象  console.log(this.name); //控制台输出: this is window  //console.log(self); //这样可以获取到的this即指向testObj对象  }  handle();  } } testObj.getName();

运行结果分析:内部函数中的this仍然指向的是全局对象,即window。这里普遍被认为是JavaScript语言的设计错误,因为没有人想让内部函数中的this指向全局对象。一般的处理方式是将this作为变量保存下来,一般约定为that或者self,如上述代码所示。

5. 使用call / apply

var name = 'this is window'; //定义window的name属性,看this.name是否会调用到 var testObj1 = {  name : 'this is testObj1',  getName:function(){  console.log(this); //控制台输出: testObj2 //this指向的是testObj2对象  console.log(this.name); //控制台输出: this is testObj2  } }var testObj2 = {  name: 'this is testObj2' }testObj1.getName.apply(testObj2); testObj1.getName.call(testObj2);

Note:apply和call类似,只是两者的第2个参数不同:

[1] call( thisArg [,arg1,arg2,… ] ); // 第2个参数使用参数列表:arg1,arg2,...

[2] apply(thisArg [,argArray] ); //第2个参数使用 参数数组:argArray

运行结果分析:使用call / apply 的函数里面的this指向绑定的对象。

6. 事件绑定

事件方法中的this应该是最容易让人产生疑惑的地方,大部分的出错都源于此。

//页面Element上进行绑定         //js中绑定方式(1)        //js中绑定方式(2)       //js中绑定方式(3)       

运行结果分析:以上2种常用事件绑定方法,在页面Element上的进行事件绑定(onclick="btClick();"),this指向的是全局对象;而在js中进行绑定,除了attachEvent绑定的事件方法(this指向的是全局对象)外,this指向的是绑定事件的Elment元素。

到此,关于"JavaScript中this如何用"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

对象 指向 控制台 控制 输出 函数 全局 方法 事件 结果 分析 运行 参数 属性 方式 学习 按钮 语言 重要 代码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 华服互联网科技怎么样 广州紫鲸互联网科技有限公司 疫情对互联网科技公司影响 互联网金融 科技金融 北京互联网络科技有限公司 腾讯科技 互联网女皇 国外互联网科技网站 互联网养老 桔豆科技 人人互联网科技是培训 成都仁贤领冠互联网科技有限公司 互联网科技中介 科技与互联网哪个更好 未来五年的互联网科技 健康食品互联网创新科技园项目 互联网科技创新的路径 上海创道互联网络科技有限公司 互联网科技年终奖 从那以后互联网科技有限公司 广西泛欧互联网科技有限公司 东风日产互联网科技公司叫什么 互联网科技公司排名 科技赋能下的互联网金融 互联网科技小额贷款 伴你行互联网科技有限公司 深圳前海聚择互联网科技有限公司 新华互联网科技2019 岳阳华臻互联网科技有限公司 互联网媒体平台算高科技产业 佛山市翊博互联网络科技有限公司 滨湖区互联网智能科技产品有哪些
0