【问题标题】:How to Get values inside Arrow function如何在箭头函数中获取值
【发布时间】:2021-02-15 18:53:55
【问题描述】:

如何在对象内部的Arrow function 中获取值。

我想访问该对象的其他属性。

let obj = {
  name:'Ashu',
  age:123,
  show: ()=>{
    // I want to print Name and Age how to do that
    // Is there any other way to do get Name and Age Property
    // I don't want to replace the Arrow function
      console.log(obj.name, obj.age);
  }
}
obj.show()

【问题讨论】:

  • 您不能使用this。你也不能.bind()箭头函数
  • “有没有其他方法可以获取姓名和年龄属性。我不想替换箭头函数”如果你不想替换箭头功能那么就没有别的办法了。
  • @FelixKling,太酷了。谢谢。

标签: javascript json ecmascript-6 arrow-functions


【解决方案1】:

这应该可行:

let obj = {
    name: 'Ashu',
    age: 123,
    show: () => {
        console.log(obj.name, obj.age);
    }
}

obj.show();

【讨论】:

  • 当然可以,但是有没有其他方法可以做到这一点,而不是使用任何功能。
  • 我不这么认为,要打印出nameage,你需要在函数中使用console.log,因为你不能自己这样做,否则你可以像这样访问对象外部的值:let obj = { name: 'Ashu', age: 123 } console.log(obj.name, obj.age)
  • 我只是在尝试,除了以下几点之外,还有什么不同的方法。在箭头函数中。 1. 使用 call()/Apply()/Bind() 2. 在函数中使用相同的对象。
【解决方案2】:

箭头函数不会捕获当前的this,要捕获this,您需要编写一个常规函数。

let obj = {
    name:'Ashu',
    age:123,
    show: function() {
        console.log(this.name, this.age);
    }
};

obj.show();

【讨论】:

    【解决方案3】:

    class Obj {
      constructor(){
        this.name ='Ansh';
        this.age = 123;
        this.show = () => {
            console.log(this.name, this.age);
          }
    
      }
    }
    
    let obj = new Obj();
    obj.show();

    【讨论】:

    • 这是新方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    • 2019-11-25
    • 1970-01-01
    • 2021-01-02
    • 2019-10-21
    相关资源
    最近更新 更多