为什么如果我将对象传递给函数,则无需在javascript中声明函数参数
||
下面是代码:
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;
}
};
}
var data = [{name: \"Zachary\", age: 28}, {name: \"Nicholas\", age: 29}];
data.sort(createComparisonFunction(\"name\"));
alert(data[0].name);
data.sort(createComparisonFunction(\"age\"));
alert(data[0].name);
如您所见,createCompatisonFunction用名为name的值填充,并且如您所见,在此函数内部,有object1和object2。请问这些论点传递了什么?你抓到我了吗?
没有找到相关结果
已邀请:
3 个回复
渴翅吮斡撤
抚驰
接受这样定义的功能
排序函数传递给数组的两个元素,并且您返回一个数字,说明它们应按照的顺序排列。 如果左侧元素需要在右侧之前,则只需返回
,否则应返回
(如果应该在右侧之前)。 如果没关系,请传回
。 在您的情况下,
和
分别是
和
。
浮凰量
的代码是返回函数的函数。 从本质上讲,您的代码与以下扩展内容相同:
创建“ 14”的目的是将复制和粘贴的代码重构到一个区域中,以便于代码管理。还要注意,如果您的数据对象还包含一个名为““ lastname”“的属性,则此函数也可以用于按LastName排序。基本上,一个功能比复制和粘贴代码要健壮得多。