我知道如何在其中设置类属性:this.property = 1
。
但是如果它在函数内部,该怎么办? 示例:
class Test = {
constructor(){
var request = require('request');
request(options, function(err, res, body){
// Here I want to set Test property
// Something like this.property = 1 or
// Test.property = 1
}
}
}
答案 0 :(得分:3)
这是箭头函数的作用,它们在函数范围内提供词汇表。
request(options, (err, res, body) => {
this.property = 1
})
此外,类构造函数中的副作用是一种反模式,尤其是异步的。
答案 1 :(得分:0)
“ this”是一个关键字。它指的是对象。 “ this.someProperty”表示相关对象的someProperty属性。
Test是类名。 Test.property是解决对象属性的错误方法。
如上所述,从函数内部寻址属性的正确方法是使用箭头函数。
class Test = {
constructor(){
var request = require('request');
request(options, (err, res, body)=>{
this.property = 1
})
}
}
var aTest = new Test(); // a Test object
var anotherTest = new Test(); // another Test object
// Change the property value of the objects
aTest.property = 5
anotherTest.property = 10