我有一个具有成员变量名称和函数 getdata()的类。 该函数进行API调用并将其接收的值分配给成员变量
class Person
{
constructor()
{
this.name = this.getdata();
}
getdata()
{
$.ajax({
url: 'https://randomuser.me/api/',
dataType: 'json',
success: function(data) {
console.log(data);
this.name = data;
}
});
}
}
但未分配该值。
我也尝试了获取:
class Person
{
constructor()
{
this.name = this.getdata();
}
getdata()
{
fetch('https://randomuser.me/api/').then(function(response) {
return response.json();
}).then(function(j) {
this.name = j
});
}
}
但它并没有在当时的函数中识别出这个
答案 0 :(得分:0)
您可能希望在JS中查看a question on the use of this
。您在函数中指定的this
不是您期望的。
最快的解决方法是执行类似
的操作// ...
getData: function() {
const self = this;
fetch(...).then(...
self.name = j
)
}
但使用arrow functions也可以解决此问题。