<!DOCTYPE html>
<html>
<head>
<title>Function returning Function Example</title>
<script type="text/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); //Nicholas
data.sort(createComparisonFunction("age"));
alert(data[0].name); //Zachary
</script>
</head>
<body>
</body>
</html>
3 回答
李晓健
TA贡献1036条经验 获得超461个赞
去看一下js的数组的sort方法,他里面可以接受一个function ,它在调用这个function时会传两个参数。 你的createComparisonFunction这个方法就返回的一个function,而你返回的这个function又需要接收两个参数,也就是object1和object2; 所以你这两个参数就是sort方法传给你的。
添加回答
举报
0/150
提交
取消