JavaScript中this的详解

JavaScript中this的详解

  在了解this之前,我们先来说明一下,构造函数 和 普通函数 的区别:

1. 构造函数的首字母是大写的,这一点是约定俗成的,即使你使用的是小写的字母,也是可以的,但是那样不符合规范;

2. 构造函数在调用的时候使用 new 操作符,普通函数不会使用new操作符的;

  new在执行的时候会做这些事情:

1. 在内存中创建一个object实例对象;

2. 将this指向创建的实例对象;

3. 执行构造函数,给创建的实例对象赋予 属性和方法;

4. 返回这个实例对象;

 

  那么,接着说明this的问题。在js的函数中this的指向问题,有点让人难以捉摸,在学习的过程中总结如下几点内容:

1. 一般函数中的this,指向的是全局window:为什么会是window呢?,因为一般函数是window对象的方法,所有this指向的是window对象;

2. 构造函数中的this,指向的是由构造函数创建的对象:因为在js中并没有 类 ,所以this指向的只能是由构造函数创建的对象实例;

3. 方法中的this,函数作为一个对象的方法,其中使用的this指向的是该对象;

4. 事件处理函数中的this,this指向是事件源;

 

总结:函数定义中的 this 的指向,是由函数调用时决定的。

 

posted @ 2019-02-02 14:41  David-lcw  阅读(155)  评论(0编辑  收藏  举报
My Google PageRank