Function that Returns a Function
by sikusikucom
JavaScript
function prop(name) {
return function(obj) {
return obj.name;
};
}
var people = [
{
name: 'Bart',
age: 13,
getName: function() {
return this.name;
}
},
{
name: 'Homer',
age: 40,
getName: function() {
return this.name;
}
}
];
// prints each person's name
var names = people.map(function(person) {
return person.name;
});
console.log(names);
// using our prop() function
var moreNames = people.map(prop('name'));
console.log(moreNames);
// prints 'Bart'
console.log(people[0].getName());
// not elegant, but you can also do this
console.log(prop('name')(people[0]));