美文网首页
JavaScript中的this

JavaScript中的this

作者: 米亚MIA | 来源:发表于2017-03-16 22:20 被阅读5次

参考文献:

本文主要参阅 http://www.jb51.net/article/65850.htm,按照原作者的讲解进行代码运行和个人总结。

然后有结合http://www.cnblogs.com/xxxxBW/p/4914567.html中bind,以及http://www.jb51.net/article/81556.htm中的node.js 中的this介绍。

正文:

本篇文章,主要强调 this的四种基本使用方法,理解这四种用法。

第一,函数有所属对象时,函数中的 this指向所属对象。

可以从下图中看出,fun1是obj对象中的一个方法,所以此方法由所属,指向obj。那么this.value也自然是obj中的值。

1.1 函数有所属对象时,函数中的this指向所属对象

这里要注意另外一点,就是如果采用了以下方式创建/封装一个对象,此中的this,是指向封装的对象的。这里的方法是有归属的,是封装对象的成员。这个要与我们将要提到的第二点进行区分。

1.1.1 封装函数时,其成员方法的this指向该对象


第二,函数没有所属对象时,this 指代window/global。

通俗来说,就是“没主的函数,它就属于全局”。我们从下图22-23行可以看出,this出现在函数fun3中,而fun3并没有绑定到任何作用域,即使fun3在fun2的函数体中定义。

这里要强调一下,无论是javascript,还是node.js,没有所属的函数中的this都是指代window/global,但是当你创建一个js 文件,如下图13-15行所示。显然,在javascript中,这里的this自然就是window/global,因为其处在全局中。但是,在node.js中,大家注意一下,这里并不是全局。

1.2 没有所属的函数中的this,指向全局

第三 构造函数中的this,指代构造函数new出的实例

1.3构造函数中的this,指向对应的实例

第四 apply,call,bind的第一个参数,是函数的绑定对象,指代this。

1.4 apply,call,bind中的this

相关文章

  • 1body中添加js

    1 中的 JavaScript JavaScript 函数和事件上面例子中的 JavaScript 语句,会...

  • JS中的类型转换

    JavaScript 中的类型转换 JavaScript 基本数据类型 JavaScript 中的一共有 8 中内...

  • js中的this

    javascript中的this javascript中的this与java中的this有点不同。ECMAScri...

  • JavaScript中的字符串

    @(javascript)[js字符串][toc] JavaScript中的字符串 字符串是JavaScript中...

  • 06-JavaScript数组和函数

    JavaScript数组 JavaScript中的数组可以存储不同类型的数据 JavaScript中的数组是引用类...

  • Client's JavaScript

    什么是JavaScript? JavaScript的运行环境? 浏览器中JavaScript可以做什么? 浏览器中...

  • javascript中的this

    一般说到JS的this,都会想起在函数中变来变去的this。但是事情的发生都是有规则的约束,JS中的this也不例...

  • JavaScript中的this

    什么是this? 首先对this的下个定义:this是在执行上下文创建时确定的一个在执行过程中不可更改的变量。th...

  • JavaScript中的this

    JavaScript中的this很容易让人迷惑,但弄清楚后其实还是很好区分的。JavaScript中的this总是...

  • javascript中的this

    在javascript中的this大致可以理解成谁调用的this就指向谁 全局环境中的this 函数中的this ...

网友评论

      本文标题:JavaScript中的this

      本文链接:https://www.haomeiwen.com/subject/gpgdnttx.html