0

代码:

function onDeviceReady() {
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}

function gotFS(fileSystem) {
    fileSystem.root.getFile("readme.txt", {create: true, exclusive: false}, gotFileEntry, fail);
}

我不明白的是,当 requestFileSystem 中没有使用 gotFS 传递的参数时,fileSystem 是如何传递的?

4

3 回答 3

1

对 requestFileSystem 的调用正在接收函数 gotFS 作为参数。gotFS 没有被调用,函数的引用被传入。如果 gotFS 正在被评估,你会在它后面看到括号。(此外,Javascript 中未验证参数,因此您可以使用比预期更少或更多的参数调用函数。)

于 2012-04-23T19:15:20.910 回答
1

gotFS作为变量(回调)传递。当requestFileSystem准备好时,它调用gotFS并传递参数。

举个例子:

function A(callback){
    callback('hello world');
}

function B(test){
    alert(test);
}

A(B);

A已通过BA然后调用B,传递'hello world'给它。

于 2012-04-23T19:16:23.500 回答
0

您已将函数指针传递给

window.requestFileSystem

在该方法中,他们可以调用并传入他们喜欢的任何对象

即(伪代码)

function window.requestFileSystem(localFs, someInt, functionDelegateToCallWithFS, fail)
{
 //blah
 var theFileSystemObject = fromSomwhereElse.get();
 functionDelegateToCallWithFS(theFileSystemObject);
 //blah
}
于 2012-04-23T19:16:41.523 回答