位置: 编程技术 - 正文

javascript this详细介绍(彻底弄懂js中的this指向)

编辑:rootadmin

推荐整理分享javascript this详细介绍(彻底弄懂js中的this指向),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js function(this),彻底弄懂js中的this指向,javascript的this用法,js中this的作用,如何理解javascript中的this,javascript的this用法,javascript的this用法,如何理解javascript中的this,内容如对您有帮助,希望把文章链接给更多的朋友!

this的值是在运行时确定的

JS中的this究竟代表什么,这是在程序运行时根据上下文环境确定,可以分为以下几种情况。

1. 全局作用域中的this

在全局作用域中,this指向window对象。

在全局作用域中执行var x=5,其实是为window对象创建一个属性x,并令其等于5。

若定义变量时不加var,JS会认为该变量为全局变量,会将其当作window对象的属性。

2. 函数中的this

JS中函数有两种,直接调用的函数称为普通函数,通过new创建对象的函数称为构造函数。

2.1 构造函数中的this

构造函数的this指向它所创建的对象,如:

javascript this详细介绍(彻底弄懂js中的this指向)

2.2 普通函数中的this

普通函数的this指向window对象。 若上述例子,直接执行Perosn函数,则其中this代表window对象,因此该函数执行后会创建一个全局的name。

3. 对象中的this

对象中的this指向当前对象,如:

上述代码中this指向函数getName所属的对象。

但是,如果一个对象的函数中又嵌套了一个函数,这个函数的this指向的却是window,而并不是其外层的对象。

上述示例中,person对象中有一个getName函数,而getName函数内部又有一个函数,这个函数内部的this指向window对象,而非person对象,这是JS的一个bug!一般作如下处理,规避这个bug:

我们在person对象的第一层函数中,将this赋给局部变量that,然后在第二层函数中使用that,此时that指向person对象,可对person的属性进行操作。

注意:若将一个对象中的函数赋给一个变量后,再通过该变量调用这个函数,此时该函数中的this指向window,而非该对象,如下所示:

4. 用call和apply函数给this开挂

这两个函数都能手动指定被调用函数内部的this指向哪个对象。

apply用法

对象A.函数名.apply(对象B, 参数列表); 当对象B作为apply的第一个参数传给apply时,对象A的函数中this就指向了对象B,此时对象A的该函数对this的操作将会作用在对象B上,由此实现了用对象A去调用对象B的函数。

标签: 彻底弄懂js中的this指向

本文链接地址:https://www.jiuchutong.com/biancheng/373590.html 转载请保留说明!

上一篇:浅谈js内置对象Math的属性和方法(推荐)(js内置对象方法有哪些)

下一篇:javascript cookie用法基础教程(概念,设置,读取及删除)(js中cookie)

  • 交印花税合同上每个月价格要一样吗
  • 企业所得税应纳税额
  • 工会经费和福利费怎么花
  • 补缴工会经费后所得税还要调整吗
  • 印花税是当月交当月的吗
  • 小企业会计制度及核算办法
  • 国家对小微企业扶持有哪些政策
  • 增值税16点税降到13点,补缴税款怎么算
  • 公司承担的社保可以税前扣除吗
  • 纳税人申请退税需要报送的资料和证件有
  • 有限合伙企业分红避税
  • 企业厂房整改应该计入什么科目?
  • 开出转账支票的摘要怎么写
  • 车间领用低值易耗品记账凭证
  • 非独立核算的分公司如何报税
  • 收了公司的款项不拿回公司属于什么行为
  • 税审需要什么资料和材料
  • 专票作废后怎样退税
  • 银行承兑汇票盖章错误证明
  • 进项税额转出是好事还是坏事
  • 长期股权投资的初始计量
  • 旅游公司主营业务介绍
  • 电子税务局哪里打印发票
  • boss直聘收费怎么这么贵
  • 超市开具预付卡发票不征税发票上税吗
  • 降低win10版本
  • mac如何登陆两个微信
  • 领用原材料业务
  • 会计分录是怎么样的
  • 事业单位财政拨款是编制吗
  • 个人所得税和企业所得税都要交吗
  • AquariumDesktop.exe进程危险吗 AquariumDesktop是什么进程
  • 杜鹃花怎么养家庭养法视频
  • 怎样改善现金流量比率
  • 出售报废的边角料收入会计分录
  • Ant Design Pro(5)-7.高级表格ProTable
  • 多源传感器融合
  • easyui给下拉框赋值
  • 购进农产品增值税进项税额的确认方法
  • 达特穆尔动物园
  • 微服务springboot结构
  • js实现功能
  • 【深度学习】AI一键换天
  • 营业税借方表示什么
  • 企业所得税包含在税金及附加里面吗
  • 公司管理费一般占多少个点
  • 财务章和公章下面数字一样吗
  • 财务软件服务合同要交印花税吗
  • 复核人和收款人一样了怎么办
  • vue 生产环境
  • python中numpy.empty()函数的用法
  • sql server 自定义排序
  • Excel导入数据库出错
  • 无票收入是怎么算的
  • 商贸企业增值税税率是多少
  • 手工账做账流程总结
  • 应收账款的明细科目一般按照什么设置
  • 营改增对企业有什么弊端
  • 铁路运费印花税谁承担
  • 坏账准备的计提分录
  • 销售折让的会计账务处理分录
  • 小型微利企业年报填什么表
  • 哪些发票可以抵减
  • 成本费用会计科目
  • 六款常见的墨水
  • VMware虚拟机中安装MATE桌面环境
  • 怎么检测软件有没有毒
  • explorer.exe进程文件
  • WIN10系统优化精简工具
  • cocos2dx schedule
  • opengl绘图
  • linux中wget命令出现错误
  • unity cpu优化
  • 在WINDOWS系统中回收站的作用不包括
  • android 轮播
  • 测验2:python基本图形绘制
  • 境外投资收益如何交税
  • 江西电子税局
  • 我们要什么行政执法监督机制和能力建设严格落实行政
  • 贤彬考研,刘磊?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设