我使用Cordova plugin,它有两个回调函数:
window.plugins.screensize.get(this.screensize_success, this.screensize_error);
接下来,在成功回调中,我这样做:
screensize_success(result)
{
console.log(result); // <--- works fine
console.log("##### height: "+result.height); // <--- works fine
this.get_highest(result); // <--- throws an error
}
get_highest(result)
{
return Math.max(result.height,result.width);
}
我收到此错误:
未捕获(承诺):TypeError:无法读取属性&#39; get_highest&#39; 为null
我做错了什么?
答案 0 :(得分:2)
调用回调时,您正在丢失this
上下文。
解决此问题的最简单方法是将回调绑定到this
:
window.plugins.screensize.get(this.screensize_success.bind(this), this.screensize_error.bind(this));
答案 1 :(得分:0)
我个人更喜欢将函数设置为变量,以便在程序中轻松重用,例如:
var get_highest = function (result)
{
return Math.max(result.height,result.width);
}
并在没有它的情况下调用它:
get_highest(result);