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”的学习》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

小白学运营

小白学运营

刘异、伍斌、赵强 / 电子工业出版社 / 2015-9-1 / 49.00元

《小白学运营》是针对网络游戏行业,产品运营及数据分析工作的入门读物,主要为了帮助刚入行或有意从事游戏产品运营和数据分析的朋友。 《小白学运营》没有烦琐的理论阐述,更接地气。基础运营部分可以理解为入门新人的to do list;用户营销部分则是对用户管理的概述,从用户需求及体验出发,说明产品运营与用户管理的依附关系;数据分析实战中,侧重业务分析,着重阐述的是分析框架,以虚拟案例的方式进行陈述,......一起来看看 《小白学运营》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具