1
//This is the function that will run every time a new item is added or the 
//list is sorted.
var showNewOrder = function() {
    //This function means we get serialize() to tell us the text of each 
    //element, instead of its ID, which is the default return.
    var serializeFunction = function(el) { return el.get('text'); };
    //We pass our custom function to serialize();
    var orderTxt = sort.serialize(serializeFunction);
    //And then we add that text to our page so everyone can see it.
    $('data').set('text', orderTxt.join(' '));
};

完整代码在http://demos.mootools.net/Dynamic.Sortables

var serializeFunction = function(*el*) { return el.get('text'); };
var orderTxt = sort.serialize(serializeFunction*(el)*);

比较代码。

el 是否通过?到底是怎么回事???

我想学习高级参数用法。

如果不声明像function name(parameter1, parameter2, parameter3...). 如果不调用像name(parameter1, parameter2, parameter3...). 如果参数不是变量。

如果声明像function(parameter1, parameter2, parameter3...). 如果调用像variable(parameter1, parameter2, parameter3...). 如果参数是对象。

我很感兴趣。

你可能有我感兴趣的课程的书签......请分享!

4

3 回答 3

1

分配给“serializeFunction”的值实际上是一个匿名函数,您可以将其视为一个指针或对函数的引用,“el”只是一个声明的输入参数,将使用然后调用该函数。

查看发布的原始代码sort.serialize函数的调用,只接收函数作为参数,“serializeFunction”没有被调用,它只是作为参数传递。

因此,接收作为参数传递的函数引用的序列化函数将负责在内部执行它。

于 2009-06-26T05:56:48.257 回答
0

这是一个类似的 lambda 表达式。

sort.serialize()

接受函数作为参数,而不是值。

于 2009-06-26T05:42:45.513 回答
0

第一个代码可能是正确的。

在 JavaScript 中,函数与任何其他值一样存储在变量中(如您在 中看到的serializeFunction),并且sort.serialize仅引用serializeFunction. 然后从当前元素 ( )serializeFunction中调用。sort.serializeel

第二个代码将向(因为尚未在该范围内定义)发送一个undefined值,这将引发错误。即使已定义,也需要对函数的引用,而不是值。serializeFunctionelelsort.serialize

于 2009-06-26T05:44:17.807 回答