我正在尝试在 javascript 上使用“类”(原型),但遇到了一个奇怪的“未定义”错误。
/**
* Use the camera to take a picture and use it as custom image.
*/
function CameraMedia(imgTag, saveButton){
this.__camera__ = navigator.camera;
this.__imageTag__ = imgTag;
this.__saveButton__ = saveButton;
this.__selectedImage__ = null;
}
/**
* Executes the camera of the device.
* @param {Object} type selects between gallery or camera. Parameters could be "GALLERY" or "CAMERA" ignoring case.
*/
CameraMedia.prototype.run = function(type){
var that = this;
function onDeviceReady(){
var options = {
quality: 50,
allowEdit : true
};
that.__camera__.getPicture(that.__successOperation__, that.__errorOperation__, options);
}
document.addEventListener("deviceready", onDeviceReady, true);
};
/**
* Operation that might be performed in case of success in taking the image.
*/
CameraMedia.prototype.__successOperation__ = function(imageData){
this.__selectedImage__ = imageData;
$(this.__imageTag__).attr("src", imageData);
$(this.__imageTag__).attr("image-changed", true);
$(this.__saveButton__).show();
}
/**
* Operation that might be performed in case of error in taking the image.
*/
CameraMedia.prototype.__errorOperation__ = function(message){
alert(message);
}
问题是this
元素上__successOperation__
没有引用 CameraMedia 对象。谢谢。