关于this指向,想到了function函数的this指向。
function函数有三种指向:
普通函数① | 函数名( ) | this -> window |
对象方法② | 对象名.函数名( ) | this -> 对象名 |
构造函数③ | new 函数名( ) | this -> new创建实例 |
而箭头函数this : 没有this。
ES6中的小箭头函数中是没有 this ,也没有 prototype,也没有 argument super() 。当然也不能用构造函数、call 或者 apply 、bind,对箭头函数无效,所以不能改变当前作用域。
小箭头函数中 this 一旦定义是无法改变的。
new 的话会改变 this 的指向的。
补充知识
普通函数①:
1. fn( )
2. 在调用函数的内部不会创建新的对象
3. 函数内部的this指向调用函数的对象(如果没有对象调用,默认是window)
4. 返回值由return语句决定
对象方法②:
包含内置函数定义的属性,用于有效地处理单个对象并从中获取信息。
构造函数③:
其实就是普通的函数,就是调用的方法不同,通常都是首字母大写,用到 new 。构造函数的一个问题就是:每次都重新在实例上重新创建一次。
1. new fn( )
2 .构造函数内部会创建一个新的对象,即f的实例
3. 函数内部的this指向 新创建的f的实例
4. 默认的返回值是f的实例
构造函数new工作原理:
(1)创建空对象
(2)this指向这个对象
(3)对象赋值
(4)返回这个对象
关注前端营地,一起学习进步!