请问这代码object1和object2是怎么取得传进来的name属性值,引用过程是什么样的?新手求指教

<!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
浏览 1949回答 3
3回答

李晓健

去看一下js的数组的sort方法,他里面可以接受一个function ,它在调用这个function时会传两个参数。 你的createComparisonFunction这个方法就返回的一个function,而你返回的这个function又需要接收两个参数,也就是object1和object2;  所以你这两个参数就是sort方法传给你的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript