JS:对“this”的学习

栏目: JavaScript · 发布时间: 7年前

内容简介:更多笔记,请参看IT老兵驿站。有半个多月没有更新博客了,这半个多月一直在加班,实在没有精力更新,现在到了调整期,可以将前一段时间的工作进行一下整理。之前对JS的this的理解一直有点模糊,这次总结一下,因为在工作中总遇到this的问题,如果一直这么模模糊糊,将会在以后的工作中带来麻烦,而对于这种躲不开的麻烦,早解决肯定要比晚解决好。

更多笔记,请参看IT老兵驿站。

有半个多月没有更新博客了,这半个多月一直在加班,实在没有精力更新,现在到了调整期,可以将前一段时间的工作进行一下整理。

之前对JS的this的理解一直有点模糊,这次总结一下,因为在工作中总遇到this的问题,如果一直这么模模糊糊,将会在以后的工作中带来麻烦,而对于这种躲不开的麻烦,早解决肯定要比晚解决好。

这篇帖子是针对参考中的w3schools的一篇帖子进行学习、翻译和理解,但我感觉w3schools这篇帖子层次有点不是太清楚。

正文

this是什么

例子:

var person = {
    firstName: "John",
    lastName : "Doe",
    id       : 5566,
    fullName : function() {
        return this.firstName + " " + this.lastName;
    }
};

这里的this指代的是什么呢?

What is “this”? In a function definition, this refers to the “owner” of the function. In the example above, this refers to the person object. The person object “owns” the fullName method.

在函数定义中,this指代函数的“拥有者”,例如上面例子中,this就代表person这个对象。

默认绑定

Default Binding When used alone, this refers to the Global object. In a browser the Global object is [object Window]:

默认的绑定,单独使用时,this就指代全局对象。个人理解,这一条和上一条不矛盾,this还是指代拥有这个变量或者函数的对象,这个时候是全局变量拥有这个变量,所以就指向了全局变量。

In strict mode, this will be undefined, because strict mode does not allow default binding:

但是在严格模式下,this将会是undefined,因为严格模式不允许默认绑定。

明确绑定

Explicit Function Binding The call() and apply() methods are predefined JavaScript methods. They can both be used to call an object method with another object as argument.

明确的函数绑定,call()和apply()是JS预定义的方法,他们可以被用于使用另外一个对象作为参数,调用这个对象的方法。

var person1 = {
    fullName: function() {
        return this.firstName + " " + this.lastName;
    }
}
var person2 = {
    firstName:"John",
    lastName: "Doe",
}
person1.fullName.call(person2);  // Will return "John Doe"

看上面这个例子,this指向了person2,最终输出的是person2的属性。


以上所述就是小编给大家介绍的《JS:对“this”的学习》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

交易系统

交易系统

武剑锋 / 上海人民出版社 / 2011-1 / 32.00元

《交易系统:更新与跨越》是中国第一部研究证券交易系统的专业著作,填补了这一领域的学术空白。既回顾和总结了系统规划、建设和上线过程中,技术管理、架构设计、应用调优、切换部署、运行维护等方面的经验和教训,也从较为宏观的角度描述了独具中国特色的交易技术支撑体系,特别是,通过分析其他资本市场交易系统的近年来发展历程和后续的技术发展规划,探索了未来业务创新和技术创新的大致框架和可能的模式。相信《交易系统:更......一起来看看 《交易系统》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换