我知道在Javascript中你可以为函数添加额外的参数。例如;
function sum(){
var result = 0;
for(var i = 0;i<arguments.length;i++){
result += arguments[i];
}
return result;
}
然后拨打sum(1,2,3,4)
。现在我正在使用Phonegap,我想将额外的参数传递给可调用的对象。 (做一些类似我之前解释的事情。)
在Phonegap中,您可以通过以下方式访问文件系统:
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, success, fail);
function success(fileSystem){
//Do something
}
是否可以做类似的事情?
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, success(option1, option2), fail);
function success(fileSystem){
//Do something
if(option1 > option2){
//Do something even interesting
}
}
由于我是两个新手,Javascript和Phonegap我不确定是否可以做这样的事情。我想避免使用全局变量。
答案 0 :(得分:5)
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) { return success(fileSystem, option1, option2); }, fail);
function success(fileSystem, option1, option2){
//Do something
if(option1 > option2){
//Do something even interesting
}
}
毫升
答案 1 :(得分:1)
也许你可以做一些事情,比如将它全部封装在一个函数中
function doFileSystemStuff(option1,option2){
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, success, fail);
function success(fileSystem){
//Do something
if(option1 > option2){
//Do something even interesting
}
}
}
然后使用option1
和option2
答案 2 :(得分:0)
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
function(option1, option2){ success(option1, option2)}, fail);
function success(fileSystem){
//Do something
if(option1>option1){
//Do something even interesting
}
}
答案 3 :(得分:0)
很可能不是。
您的成功处理程序在函数requestFileSystem
中调用。我的猜测是该功能不包括任何其他参数。
由于您不想使用全局变量,因此中间有一个解决方案:将所有内容放入函数中:
(function() {
var option1 = 0, option2 = 1;
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, success, fail);
function success(filesystem) {
console.log(option1, option2); // will display 0 and 1
}
})(); // calls itself
console.log(option1, option2); // undefined
这样你仍然可以设置option1
和`option2,在你的方法中访问它们,而不是让它们全局化!
答案 4 :(得分:0)
这样做:
function getFileSystem() {
//set your option1, option2
var option1 = 1, option2 = 2;
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
//Do something
function innerSuccess(fileSystem, option1, option2) {
//Do something even interesting
}
}, fail);
}