我正在学习 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)
其中 name
是 createComparisonFunction
的输入,obj1, obj2
是无名函数的输入。
当 sort() 方法比较两个值时,它会将值发送到比较函数,并根据返回的(负、零、正)值对值进行排序。
请帮助我 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)
其中 name
是 createComparisonFunction
的输入,obj1, obj2
是无名函数的输入。
当 sort() 方法比较两个值时,它会将值发送到比较函数,并根据返回的(负、零、正)值对值进行排序。