get_O3(e)
{
e.preventDefault();
let station = document.getElementById(e.target.id);
let lon = station.getAttribute('lon');
let lat = station.getAttribute('lat');
let code_station = station.getAttribute('code');
this.get_previsions(lon, lat, "O3").bind(this).then((data) =>
{
console.log(data);
});
}
我有一个“此”问题,当我调用函数get_previsions时出现错误:未捕获的TypeError:this.get_previsions不是函数。这可能是由于(e)参数,因为当我执行console.log(this)时,它将返回目标。我希望这==我的课。感谢您的帮助
在任何给定点,您都可以通过执行以下4条规则来检查当前this
参考所指向的是什么:
new
调用了该函数,然后this
指向新实例。Function#call
,Function#apply
或Function#bind
]调用的函数>owner.foo()
或owner["bar"]()
)this
模式运行,则window
设置为"use strict"
对象,否则以undefined
开头。事件侦听器使用显式绑定(callBack.call(target, ...)
)调用函数,因此this
引用将设置为目标。要更改this
参考,您需要包装并隐式调用它,或使用Function#bind
。
隐式呼叫示例:
var something = { foo: function() { var self = this; addEventListener("click", function(e) { self.bar(e); }); }, bar: function() { } };
显式调用示例(功能#绑定):
var something = {
foo: function() {
addEventListener("click", this.bar.bind(this));
},
bar: function() {
}
};
我假设您定义的类类似于