Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Typescript中,当map()使用实例化对象的方法时,是否可以访问该对象';谁的财产?_Javascript_Typescript_Dictionary_Object_Methods - Fatal编程技术网

Javascript 在Typescript中,当map()使用实例化对象的方法时,是否可以访问该对象';谁的财产?

Javascript 在Typescript中,当map()使用实例化对象的方法时,是否可以访问该对象';谁的财产?,javascript,typescript,dictionary,object,methods,Javascript,Typescript,Dictionary,Object,Methods,我有一个类,它有一个我想通过Typescript的array.map()功能使用的方法。我已经从该类实例化了一个对象,并且正在使用该实例化对象的方法。在map()中使用该方法时,是否应该访问该实例化对象的属性?从我的测试来看,似乎不是这样 从我的测试来看,似乎不是这样 常见错误是不良此。失败的示例: class Foo { x = 123 returnX() { return this.x; } } const fail = [new Foo()].map(foo.returnX);

我有一个类,它有一个我想通过Typescript的array.map()功能使用的方法。我已经从该类实例化了一个对象,并且正在使用该实例化对象的方法。在map()中使用该方法时,是否应该访问该实例化对象的属性?从我的测试来看,似乎不是这样

从我的测试来看,似乎不是这样

常见错误是不良
。失败的示例:

class Foo {
  x = 123
  returnX() { return this.x; } 
}
const fail = [new Foo()].map(foo.returnX);
修理 使用箭头功能:

class Foo {
  x = 123
  returnX = () => { return this.x; } 
}
const pass = [new Foo()].map(foo.returnX);
更多
  • 我在
    上做的一个免费视频:

您需要了解本功能与箭头功能的范围。箭头函数这将始终是函数所附加到的对象的实例。在普通函数中,这是调用函数所附加到的对象

class MyClass {
  multiplyer = 2;

  x = [1,2,3].map(this.double);

  doubleArrow = val => this.multiplyer * val; // this is always what you expect it to be, the instance of this object

  y = [1,2,3].map(this.doubleArrow);

  double(val) {
    return this.multiplyer * val; // this will change depending on the function that calls it
  }
}

你能给我个建议吗
array.map
不是TypeScript的功能,而是JS。我说TypeScript是为了明确我有可以实例化的类(我不确定你在所有版本的javascript中都能做到这一点)