位置: 编程技术 - 正文

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字符串类型单引号和双引号意一样吗)

  • 正常工资薪金包括年终奖吗
  • 增值税审核表
  • 对方给我公司开的红字发票如何查询
  • 小型微利企业季度申报
  • 贷款利息是否能降低
  • 转让长期股权投资的净收益计入
  • 影响固定资产折旧的基本因素
  • 单位装修质保金扣留的会计处理
  • 销售货物尚未收到会计分录
  • 购销行为的帐务处理如何做?
  • 预付账款改为什么科目
  • 溢价发行可转换公司债券会计分录例题
  • 教育费附加减免政策
  • 怎么查公司连续缴纳社保记录
  • 预缴税款是开票金额的多少
  • 单位代扣代缴个人社保
  • 违约金收入如何缴税
  • 创新券补贴可以算作高新收入吗?
  • 工程哪些材料可以做
  • 一般纳税人证明在哪里打印
  • 公司入职员工
  • 企业成本费用包括哪些
  • 企业所得税投资收益纳税调整
  • 备用金转账个人能转吗
  • 倒发票怎么倒出钱来
  • 前期费用会计分录
  • 支付商业保险费属于什么现金流量项目
  • 全年一次性奖金税率表
  • 价款包括增值税税率吗
  • 境内单位和个人将船舶出租到境外的,不征收车船税
  • 大沙丘国家公园在哪里
  • linux命令行怎么用
  • mac触控板使用技巧
  • 什么样的企业是好企业,什么样的员工是好员工
  • 公积金补缴需要去柜台吗
  • kb4503269补丁安装失败解决办法
  • 装修费怎么记会计科目
  • 笔记本电池消耗大怎么办
  • framework怎么用
  • thinkphp框架怎么用
  • java使用循环结构输出九九乘法表
  • cpu spread spectrum
  • 新增办税员需要哪些资料
  • 工会经费减除项包括哪些
  • 社保缴费基数是怎么确定的
  • pandas columns排序
  • datatable怎么用
  • 对增值税发票开具方面是有啥要求?
  • 税务师考试的报名时间
  • 负数发票怎样做账
  • 高新企业收到政府补贴
  • 什么单位需要
  • 上市公司限制性股票个人所得税
  • 公司注销其他应付款怎么冲平
  • 坏账准备的计提分录
  • 工程施工企业收到工程款,怎么做分录
  • 预付账款跨年处理分录
  • 审车费用表
  • 挂其他应付款的帐怎么冲平
  • 金蝶当月没有账如何结转到下月
  • 去年未做账的发票怎么查
  • 商品流通企业会计第三版答案倪明辉
  • java连接mysql数据库教程
  • windows预览版计划
  • linux修改yum
  • xp 跳过 chkdsk
  • win10系统应用
  • xp电脑状态栏跑到左边了怎么设置回来
  • win7系统还能用不
  • win7系统怎么把c盘的内存加到d盘
  • post installation
  • windows休眠文件
  • win7系统无法共享win10系统打印机
  • Win10 Mobile 10586.71截图曝光 修复已知问题
  • Linux 压缩某个文件夹的实现方法
  • python爬取csdn
  • Python 数据清洗
  • 全面解析皮炎
  • 税务登录 河北省地方税务局
  • 小规模企业降税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设