this的指向的一些问题
- apply方法:调用函数,同时指定函数中的this指向,参数以数组传递
- call方法:调用函数,同时指定函数中的this指向,参数以列表传递
- bind方法:得到一个新函数,该函数中的this始终指向指定的值,永久性绑定。
(以上三种方法(任何方法)都改变不了箭头函数中的this指向)
this无法赋值
- 在全局作用域中,this关键字固定指向全局对象。在浏览器中,window对象即是全局对象
- 在函数作用域中,取决于函数是如何被调用的
- 函数直接调用,this指向全局对象
- 通过一个对象的属性调用,格式为
对象.属性()
或对象["属性"]()
,this指向对象
1). 直接调用函数,this指向全局对象
2). 在函数外,this指向全局对象
3). 通过对象调用或new一个函数,this指向调用的对象或新对象
箭头函数引入的其中一个原因,就是其不绑定this;在箭头函数中,箭头函数的this被设置为封闭的词法环境的,换句话说,箭头函数中的this取决于该函数被创建时的环境(上下文中的this)
箭头函数没有自己的this值,箭头函数中所使用的this来自于函数作用域链。