我一次又一次遇到的问题之一是对this
指针更改的引用。以下面的例子为例。我想创建一个服务器对象,并将相机的分辨率存储为一个属性。这是不可能的,因为它this.resolution
适用于相机回调对象而不是 Server 对象中的属性。
function Server(options) {
this.settings = options.settings;
this.camera = options.camera;
// Grab camera resolution
this.camera.getImageResolution(function(err, data) {
this.resolution = data;
});
}
Server.prototype.start = function() {
console.log(this.resolution); // This outputs an undefined variable error
}
过去,我通过重命名this
为self
临时调用函数来解决此问题。当我存储一个值时,这不起作用。我需要传入this
回调,这显然是我做不到的。
此外,我不能使用apply
,因为这不允许camera.getImageResolution
调用它自己的方法。
解决此问题的最佳途径是什么?如果我的问题含糊不清,请要求澄清。