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オブジェクトを参照していないことです。ありがとう。