2012-08-01 110 views
-3

我想弄清楚別人的代碼。它由Javascript編寫。我對Jquery更加熟悉。這些代碼是什麼意思?

我知道這是一個函數,但不知道這些參數(imaglist,sucess,hobject)。謝謝您的幫助。

var mystuff = new Object(); 

var all_done = function (imagelist,success,hobject){ 
    //alert(success); 


mystuff = imagelist.list; 

} 
+4

我們不知道該參數用於什麼決定,因爲我們沒有寫代碼。看看該函數是如何被調用的,並試圖找出它。 – 2012-08-01 17:38:34

+0

這可能只是整個代碼的一小部分,所以很難弄清楚代碼應該做什麼。 – 2012-08-01 17:39:37

+0

由於我們基本上必須繼續的是變量的名稱(感謝Javascript,我們甚至不知道類型),我們確實沒有什麼可以幫助的。名稱可以是一個粗略的指導方針,但是取決於你調用這個函數的位置,並從那裏找出它。 – 2012-08-01 17:41:16

回答

2

從技術上講,它只是一個函數,帶有imagelist,success和hobject參數。所以,你會調用它:

all_done(anImagelist, somethingRepresentingSuccess, myHobject) 

但在這種情況下,它看起來像all_done是回調函數,當某事(此處未顯示)完成時調用。 imagelist,success和hobject是回調變量,它們是回調分配給的任何函數的結果。

假設我們有一個Ajax調用,就像這樣:

$.ajax({ 
    type: "POST", 
    data: something, 
    success: all_done 
}); 

現在完成Ajax調用的時候,它的結果,假設有三個,將被傳遞給all_done。真的,我甚至不確定這是否可以用ajax調用,但這個想法是重要的。所以,當ajax調用完成時,mystuff將被設置爲imagelist.list;

+0

你怎麼知道? – 2012-08-01 17:41:12

+0

@FelixKling只是一個假設,因爲它被稱爲「all_done」,並且有一個註釋掉了alert(「success」)',lol。我假設OP想知道它做了什麼*,而不是它*的*。我會編輯並澄清,雖然 – 2012-08-01 17:46:08

+0

是的,這是一個ajax回調函數。 – FlyingCat 2012-08-01 17:48:18

1

這是一個接受三個參數(imagelist,successhobject)的函數。 您可以all_done(some_list, some_state, some_object);

這是基本一樣編寫函數這樣稱呼它:

function all_done(imagelist, success, hobject) { 
    // ... 
} 
+0

這是不正確的。函數聲明不是自動全局的,它們也是本地的。例如:http://jsfiddle.net/EFQwA/ – 2012-08-01 17:40:57

+0

@FelixKling:不適用於JS,afaik。 – knittl 2012-08-01 17:43:14

+0

但我知道;)您可能想閱讀:http://stackoverflow.com/questions/336859/javascript-var-functionname-function-vs-function-functionname – 2012-08-01 17:43:53

1

你有你的mystuffObject到可以附加任何你想要的屬性。然後,你必須all_done存儲接收imagelist,success,hobject當該功能它觸發任何你發送給它的imagelist至極也是必須包含list將附着在mystuffObject

0

不知道該屬性的對象的功能,但它將一個函數存儲到名爲all_done的變量中。如果all_done功能是你發佈的代碼後立即調用,然後變成的MyStuff imagelist.list:

var imagelist = {list:"myList"}; 
    var mystuff = new Object(); 
    var all_done = function (imagelist,success,hobject){ 
    //alert(success); 
    mystuff = imagelist.list; 
    } 
    all_done(imagelist,true,null); 
    alert(mystuff==imagelist.list);//should alert true 
    alert(mystuff);//should alert myList