美文网首页
箭头函数里this指向问题

箭头函数里this指向问题

作者: 夏天de | 来源:发表于2017-11-11 12:17 被阅读0次

结论: 箭头函数 会动态绑定this,直到找到 外层第一个function,没有function的话就是全局的的对象

上代码

import { Injectable } from '@angular/core';

@Injectable()
export class TestService {
  constructor() {
    // 箭头函数没有固定的this指定, 指向它外层第一的 function
    this.testCallBack(() => {
      console.log(this.getUserName());
    });
    this.testCallBack(function(){
      // 报错
      console.log(this.getUserName());
    });
    this.testCallBack(() => {
       // 测试包裹一层箭头函数 这个箭头外面没有function,执向全局的ts,也就是test.service.ts,所以找到getUserName()这个方法
      console.log(this.getUserName());// 测试包裹2层箭头函数,这个箭头外面没有function,执向全局的ts,也就是test.service.ts
      let testScopeThis =  () => {
        console.log("王二麻子2");
        console.log(this.getUserName());
      }
      testScopeThis();

       // 测试包裹一层箭头函数后,用直接定义函数, this在当前这个function内,所以找不到getUserName()这个方法
      let testFunctionThis =  function scopeFunctionThis(){
        console.log(this.getUserName());
      };
      testFunctionThis();
    });
    
    
    testCallBack(callback) {
        if (callback) {
          callback()
        }
    }
    getUserName() {
      console.log("张三");
      return "张三";
    }

}

在没有箭头函数的年代,我们是如何解决,函数内的函数,调用函数外面的方法的勒

  1. 匿名函数
// 一层层传递的,用的匿名函数的玩法,一层一层往里传
 this.testCallBack((function(testService){
     let testScope =(function(that){
         that.getUserName()
     })(testService);
   })(this));
  }
  

对箭头函数要理解更深点可以参考mdn 箭头函数
这是对箭头函数的一个总结,自己学习下,也希望大家可以了解下,

相关文章

  • 箭头函数里this指向问题

    结论: 箭头函数 会动态绑定this,直到找到 外层第一个function,没有function的话就是全局的的对...

  • Reflux回调函数的坑

    this指向问题 刚开始一直报找不到completed函数,原因是js里this指向的问题 1.箭头函数的this...

  • ES6新特性(更新篇)

    首先感谢Carnia帮我指出ES6箭头函数中this指向的错误,此次主要更新箭头函数中this指向问题。 ECMA...

  • 函数的扩展

    函数的扩展 箭头函数和普通函数区别箭头函数没有this对象,箭头函数的里的this始终指向定义时所在对象,普通函数...

  • js prototype

    this 指向 箭头函数里的 this 指向声明函数的地方,也就是组件内,所以不用 bind(this)普通函数里...

  • 箭头函数和普通函数的主要区别是什么?

    箭头函数和普通函数的主要区别: this的指向问题,箭头函数是不存在this的(也是箭头函数和普通函数最主要的区别...

  • React Native 关于箭头函数、普通函数与点击事件的调用

    箭头函数 箭头函数一个重要的好处就是对于this对象指向问题,在普通函数中this对象的指向是可变的,所以在普通函...

  • React处理事件响应机制

    一. 箭头函数 1.1 使用箭头函数的优点 1、箭头函数一个重要的好处就是对于this对象指向问题,在普通函数中t...

  • JavaScript笔记2

    this、高阶函数、闭包、箭头函数、generator 1. this 函数this指向问题:(1)this和它声...

  • 前端小白成长04--Object.is  this

    Object.is()确定两个值是否相同 Ie不支持 this指向在箭头函数内是没有 this 指向的,箭头函数里...

网友评论

      本文标题:箭头函数里this指向问题

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