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」は呼び出されておらず、引数として渡されているだけです。

そこで、パラメータとして渡された関数の参照を受け取ったserialize関数が内部で実行を担当することになります。

于 2009-06-26T05:56:48.257 に答える
0

これはラムダ式のようなものです。

sort.serialize()

値ではなく関数をパラメーターとして受け入れます。

于 2009-06-26T05:42:45.513 に答える
0

最初のコードはおそらく正しいです。

JavaScript では、関数は他の値と同じように ( でわかるようにserializeFunction)変数に格納されsort.serialize、 への参照のみを取りますserializeFunction。次に、現在の要素 ( )serializeFunctionから呼び出されます。sort.serializeel

2 番目のコードは、エラーをスローするundefined値をserializeFunction(そのスコープで定義されていないため) に送信します。が定義されelている場合でも、値ではなく関数への参照が必要です。elsort.serialize

于 2009-06-26T05:44:17.807 に答える