Javascript 在Typescript中,当map()使用实例化对象的方法时,是否可以访问该对象';谁的财产?
我有一个类,它有一个我想通过Typescript的array.map()功能使用的方法。我已经从该类实例化了一个对象,并且正在使用该实例化对象的方法。在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);
此。失败的示例:
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中都能做到这一点)