美文网首页
JS中函数里的this指向

JS中函数里的this指向

作者: Silver湫澲 | 来源:发表于2018-11-14 15:40 被阅读22次

缘起

在JS中,函数是非常单纯的,仅仅只是函数而已,一个函数在被调用之前,对于它来说this的指向是不知道的。
默认情况下,谁调用函数,this就指向谁。

解释

也就是说,当传递函数交给别人执行的时候,对于函数来说this指向新的调用者了。

解决

如何保证this的指向不变呢?
答案就是函数的原型链上有一个bind()函数,这个函数会返回一个设置了this指向的函数,并且绑定后是永久的不允许修改了的,就是不会变了,bind()函数的第一个参数就是this需要指向的对象。

后语:语法糖()=>{}箭头函数

箭头函数是直接被绑定在当前this对象上的,相当于在定义完成之后直接绑定了this

let fun=()=>{
  // your code
}
// 大约等价于
let fun=function(){
  // your code
}.bind(this)

也就是说,箭头函数声明的时候,this指向是定的,以后也不会变了。

相关文章

  • JS中函数里的this指向

    缘起 在JS中,函数是非常单纯的,仅仅只是函数而已,一个函数在被调用之前,对于它来说this的指向是不知道的。默认...

  • this

    this在js中主要研究的是函数中的this,不代表函数外没有this,函数外的this指向window js中的...

  • 关于js函数中this的指向的问题

    @(javascript)[JavaScript中this的指向] 关于js函数中this的指向的问题 javas...

  • JavaScript中this使用

    JS中this指向 this在全局作用于下指向window 函数中使用的this指向: 函数在调用时,JavaSc...

  • 关于js中this指向的那些事

    this是JS中的关键字,this的指向中函数定义时确定不了,只有 函数指向的时候才能确定this到底指向谁,th...

  • js中this问题小结

    在使用js中的this时,由于js的语法规则,this的指向是会改变的,js中的this指向是根据函数在执行时的作...

  • js中的this

    目标:js中this的指向? 问题的引出 指出this指向什么 js中函数的三种调用形式 func(p1, p2)...

  • js 函数中this指向谁

    一句话总结 谁调用函数,this就指向谁 注意点 1.this指向的,永远是对象2.this指向谁, 不取决与th...

  • es6(class)

    js中的私有方法 _privateMethod(){}形式 关于this 函数中的this指向函数的调用者unde...

  • JS高级-函数中this的指向

    普通模式下:普通函数中的this?调用的时候是window.f1(),window可省略 ...

网友评论

      本文标题:JS中函数里的this指向

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