我正在使用Backbone和Requirejs开发基于cordova的移动应用程序。我需要在cordova的相机插件上创建一个包装器。在我的项目中,我需要一个相机实例,所以我没有返回一个函数,而是从模块返回一个对象,如下所示。
define(['underscore', 'deferred'], function (_, Deferred) {
'use strict';
var defaultQuality = 50,
isEditAllowed = false,
saveToAlbum = false;
return {
getPicture: function (options) {
var deferred = Deferred(),
cameraOptions = _.extend({
quality: defaultQuality
}, options);
navigator.camera.getPicture(deferred.success, deferred.fail, cameraOptions);
return deferred.promise();
},
capturePicture: function (success, fail, allowEdit, saveToPhotoAlbum) {
return this.getPicture(success, fail, {
allowEdit: allowEdit || isEditAllowed,
saveToPhotoAlbum: saveToPhotoAlbum || saveToAlbum
});
},
getPictureFromAlbum: function (success, fail) {
return this.getPicture(success, fail, {
sourceType: Camera.PictureSourceType.SAVEDPHOTOALBUM
});
},
getPictureFromLibrary: function (success, fail) {
return this.getPicture(success, fail, {
sourceType: Camera.PictureSourceType.PHOTOLIBRARY
});
}
};
});
上述相机模块必须用于骨干视图。
define(['backbone', 'camera'], function(Backbone, ?) {
//...
});
根据Javascript中的命名标准,我是否需要在函数参数中使用camelCase(camera
)或PascalCase(Camera
)命名约定。