Return a function from a function

Description

function names in Javascript are variables, so functions can be used as value.

We can return a function as a value.

Example


function compareField(propertyName) {// w w w . ja v  a2 s  .  c  o  m
    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: "Java", age: 28},
            {name: "XML", age: 29}];

data.sort(compareField("name"));
console.log(data[0].name);
console.log(data[1].name);

data.sort(compareField("age"));
console.log(data[0].name);
console.log(data[1].name);

The code above generates the following result.





















Home »
  Javascript »
    Javascript Introduction »




Script Element
Syntax
Data Type
Operator
Statement
Array
Primitive Wrapper Types
Function
Object-Oriented
Date
DOM
JSON
Regular Expressions