我正在学习 javascript 并且我坚持使用函数返回函数的概念

I am learning javascript and i'm stuck with the concept of function returning function

请帮助我 code.I 不理解 return function(object1,object2) 的功能。return function in create comparison function() get its parameters.?

var data = [{ name: "Zachary", age: 28}, {name: "Nicholas", age: 29}];

function createComparisonFunction( 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; 
     } 
   }; 
}
data.sort( createComparisonFunction(" name")); 
alert( data[ 0]. name); // Nicholas 
data.sort( createComparisonFunction(" age"));
alert( data[ 0]. name); // Zachary

你可以假设 sort 函数类似于下面的代码。

function sort( comparefunction )
{
  ...
  if ( comparefunction(obj1, obj2 ){
    // do stuff
  }
}

现在因为 comaprefunction 本身就像 createComparisonFunction("name") 你最终会得到这样的东西: createComparisonFunction("name")(obj1, obj2) 其中 namecreateComparisonFunction 的输入,obj1, obj2 是无名函数的输入。

当 sort() 方法比较两个值时,它会将值发送到比较函数,并根据返回的(负、零、正)值对值进行排序。