2012-04-23 13 views
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で渡される引数がないとき、ファイルシステムが渡されるんですか?

答えて

1

requestFileSystemを呼び出すと、関数gotFSがパラメータとして受け取られています。 gotFSが呼び出されていない場合、その関数への参照が渡されています。もしgotFSが評価されていたら、その後ろに括弧が現れます。 (また、パラメータはJavascriptで検証されないため、引数の数が予想以上に少ない関数を呼び出すことができます)。

1

gotFSは、変数(コールバック)として渡されます。 requestFileSystemの準備ができたら、gotFSを呼び出し、パラメータを渡します。

この例を見てみましょう:

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

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

A(B); 

ABを渡されます。 ABにコールされ、'hello world'が渡されます。

0

は、あなたは彼らが呼び出すと、彼らが好きなオブジェクトを渡すことができる方法で

window.requestFileSystem 

に関数ポインタを渡した

すなわち(擬似コード)私が編集した

function window.requestFileSystem(localFs, someInt, functionDelegateToCallWithFS, fail) 
{ 
//blah 
var theFileSystemObject = fromSomwhereElse.get(); 
functionDelegateToCallWithFS(theFileSystemObject); 
//blah 
} 
+0

TAロケットコードは同じ方法で –

+0

私は編集忍者です: - P –

関連する問題