что аргумент в анонимной функции представляет в именованной функции? - PullRequest
0 голосов
/ 25 мая 2011

Эмм, я изо всех сил пытался объяснить, в чем моя проблема, извините за плохой английский. В следующем коде:

    function createCompareFunction(propertyName){

    return function(object1, object2){
       var value1 = object1[propertyName];
       var value2 = object2[propertyName];

       if(value1 < value2){
          return -1;
       }else if(value1 > value2){
          return 1;
       }else{
          return 0;
       }

    };


}

var person = [{name: "Nicholas", age: 29}, {name: "Alex", age: 34}];
person.sort(createCompareFunction("name"));
alert(person[0].name);

как вы можете видеть в этой области:

 return function(object1, object2){
   var value1 = object1[propertyName];
   var value2 = object2[propertyName];

есть аргументы object1 и object2 но когда я вызываю функцию, я не определяю аргументы, но почему он автоматически знает, что это объект в массиве.

Надеюсь, ты знаешь, о чем я говорю. Спасибо !!

1 Ответ

1 голос
/ 25 мая 2011

См. спецификацию для сортировки .Он сообщает вам, какие аргументы он передает, когда вызывает функцию, которую вы ему передаете (это два элемента в массиве, который он в данный момент сортирует).

...