位置: 编程技术 - 正文

Javascript学习笔记之 函数篇(二) : this 的工作机制(javascript教程)

编辑:rootadmin

推荐整理分享Javascript学习笔记之 函数篇(二) : this 的工作机制(javascript教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript总结笔记,javascript教程推荐知乎,javascript入门教程,javascript学习指南,javascript教程推荐知乎,javascript入门教程,javascript学习指南,javascript基础笔记,内容如对您有帮助,希望把文章链接给更多的朋友!

全局作用域下

this;当在全局作用域中使用 this,它指向全局对象。这里详细介绍下全局对象:

全局对象(Global object) 是在进入任何执行上下文之前就已经创建了的对象;这个对象只存在一份,它的属性在程序中任何地方都可以访问,全局对象的生命周期终止于程序退出那一刻。全局对象初始创建阶段将 Math、String、Date、parseInt 作为自身属性,等属性初始化,同样也可以有额外创建的其它对象作为属性(其可以指向到全局对象自身)。例如,在 DOM 中,全局对象的 window 属性就可以引用全局对象自身。所以在 console 内输入 window 和 this.window 是一样的。

调用一个函数时

foo();在这里,this 同样指向全局对象。

调用一个方法时

test.foo();

在这个例子中,this 将会指向 test 对象。

调用一个构造函数时

new foo();

一个函数在被调用时和关键字 new 一起使用,我们称之为构造函数。此时在函数内,this 指向新建的对象。

显式设置时

Javascript学习笔记之 函数篇(二) : this 的工作机制(javascript教程)

当使用 Function.prototype 的 apply 和 call 方法时,this 的值为显式设置为该方法的第一个参数。因此,不同于调用一个函数时的规则,上例中 this 指向了 bar。

这里介绍下 call 和 apply 方法:

call 方法:

语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]])定义:调用一个对象的一个方法,以另一个对象替换当前对象。

apply 方法:

语法:apply([thisObj[,argArray]])定义:应用某一对象的一个方法,用另一个对象替换当前对象。在这里我们要注意一点,在对象的字面声明时,this 不能用来指向对象本身。如下:

这里,this 不会指向 obj,this 的应用只限于以上五种情形。

总结

尽管上述情形在大多时候是有意义的,但是第二种情形(即调用一个函数时)的 this 实际上是很少有用途的,这被认为是 Javascript 设计上的另一个错误。

根据我们上面所述,这里的 this 将会指向全局对象,而不是 Foo 函数。为了在 test 中获得指向 Foo 的途径,我们需要在 method 内部创建一个局部变量指向 Foo。

that 只是普通的变量名,但是它经常被用来指向外部的 this。还有一个比较有意思的地方与函数别名相关,即将一个方法赋值给一个变量时。

上例中,test 将会被当做一个普通函数看待,所以根据第二种情形(即调用一个函数时),其内部的 this 将会指向全局变量,而不是 someObject。尽管,this 晚绑定初看上去是个不好的决定,但实际上这是原型式继承工作的基础。

此时,当 method 被调用时,它将指向 Bar 的实例对象。

Javascript字符串对象的常用方法简明版 vara="abcDEfGgdefgasdf";document.write("原始:"+a+"br/")document.write("粗体:"+a.bold()+"br/");document.write("大号:"+a.big()+"br/");document.write("斜体:"+a.italics()+"br/");document.write

javaScript中两个等于号和三个等于号之间的区别介绍 一言以蔽之:==先转换类型再比较,===先判断类型,如果不是同一类型直接为false。===表示恒等于,比较的两边要绝对的相同alert(0=="");//truealert(0==false);//

javascript时间函数大全 以下是总结的js日期函数大全,供大家参考1.取得当前时间vardate=newDate();2.已知年、月、日转换成日期型的数据:varapplyDate=document.domainExceptionForm.applyDate.v

标签: javascript教程

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

上一篇:Javascript学习笔记之 函数篇(一) : 函数声明和函数表达式(javascript教程推荐知乎)

下一篇:Javascript字符串对象的常用方法简明版(JAVAscript字符串类型单引号和双引号意一样吗)

  • 一般计税方法是全额计税吗
  • 其他债权投资的交易费用计入哪里
  • 公司没有收入怎么报销
  • 收到上年多缴的企业所得税
  • 可供出售金融资产和交易性金融资产
  • 研发支出的材料费
  • 向个人借款计入什么会计科目
  • 通行费电子增值税怎么算
  • 抵扣税控盘维护费会计分录
  • 事业单位大型修缮会计分录
  • 项目一次性奖励会计分录怎么处理
  • 监督机关包括哪些
  • 小微企业劳务费税率
  • 增值税发票地址开错了有影响吗
  • 发票上传出现手印怎么办
  • 房地产企业各个阶段所涉及的税种
  • 关于土地增值税若干问题的通知
  • 长期零申报有什么影响
  • 收到的运输发票要交印花税吗?
  • 工会筹备金怎么报
  • 确认整个会计年度的依据
  • 应收账款账龄怎么查
  • 税务没有核定印花税
  • bitlocker功能
  • 腾讯电脑管家怎么修复dll
  • 只交社保不发工资可以吗
  • 先征后退的增值税
  • 广告公司车身广告
  • 企业为开发新产品新技术新工艺
  • win10电脑文件夹打不开
  • 以前年度损益调整结转到哪里
  • php glob
  • vue3.0解决跨域
  • php __destruct
  • 国家规定免税饲料具体哪些产品
  • 可供出售交易资产
  • 企业持有待售的固定资产,应当对其预计
  • 帝国cms到底好不好
  • 进口设备增值税计算
  • 小规模超500万升一般纳税人规定
  • ps填充内容识别在哪
  • spring整合mongodb
  • if三元表达式
  • 付款后发票的扩张怎么开
  • 个体升一般纳税人的界限
  • 建筑工程机械设备租赁属于什么行业
  • 个体工商户生产经营税
  • 小规模纳税人自行开具增值税专用发票税率
  • 固定资产大修理和更新改造的区别
  • 实收资本没有实缴,财务报表里面怎么写
  • 企业所得税的减免税额
  • 以前年度费用未入账,现可以入账吗?
  • 应付职工薪酬账户期初余额为4000元
  • 记账凭证分类
  • 公司向税务局缴纳税款
  • 房地产企业取得政府补助
  • 企业清算期间发生的各项费用应计入以下什么科目
  • 民非企业怎么给员工交五险
  • 建筑简易征收适用哪些业务
  • 公司如何做账本
  • mysql的innodb和myisam
  • mysql中的字符串函数
  • 安装fedora进入不到安装界面
  • dotnetfx35有什么用
  • win7 64位系统使用百度影音播放视频没声音没画面的故障原因及解决方法
  • 如何删除win7
  • 如何不让qq开机自启
  • windows7屏幕颠倒
  • Metaio in Unity3d 教程--- 一. 搭建环境,运行官方案例
  • 批处理修改文件后缀名
  • xml能写网页吗
  • html:xt
  • js的a标签
  • unity3d中用四元数 Quaternion来对一个坐标点进行旋转的初步体会
  • android系统虚拟机
  • dom操作的方法
  • 信息页文内画中画广告js实现代码(文中加载广告方式)
  • 亮屏功能
  • 如何查询自己公司的对公账号
  • 山东税务师协会官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设