2012-08-01 114 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