问题描述
|
嗯,我尽力解释我的问题,对不起,英语不好。
在下面的代码中:
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参数
但是,当我调用函数时,我没有定义参数,但是为什么它会自动知道它是数组中的对象。
希望你知道我在说什么。谢谢!!
解决方法
请参阅规格说明。它告诉您在调用传递给它的函数时传递了哪些参数(它们是当前正在排序的数组中的两项)。