this的指向的一些问题

Posted panghu123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了this的指向的一些问题相关的知识,希望对你有一定的参考价值。

  • apply方法:调用函数,同时指定函数中的this指向,参数以数组传递
  • call方法:调用函数,同时指定函数中的this指向,参数以列表传递
  • bind方法:得到一个新函数,该函数中的this始终指向指定的值,永久性绑定。
    (以上三种方法(任何方法)都改变不了箭头函数中的this指向)

    this无法赋值

  1. 在全局作用域中,this关键字固定指向全局对象。在浏览器中,window对象即是全局对象
  2. 在函数作用域中,取决于函数是如何被调用的
    1. 函数直接调用,this指向全局对象
    2. 通过一个对象的属性调用,格式为对象.属性()对象["属性"](),this指向对象

1). 直接调用函数,this指向全局对象
2). 在函数外,this指向全局对象
3). 通过对象调用或new一个函数,this指向调用的对象或新对象

箭头函数引入的其中一个原因,就是其不绑定this;在箭头函数中,箭头函数的this被设置为封闭的词法环境的,换句话说,箭头函数中的this取决于该函数被创建时的环境(上下文中的this)
箭头函数没有自己的this值,箭头函数中所使用的this来自于函数作用域链。

以上是关于this的指向的一些问题的主要内容,如果未能解决你的问题,请参考以下文章

this指向!

谈谈代码中的this

前端片段整理

javascirpt之 thisapplycallbind

js中的this指向

在片段部分使用YoutubePlayerView