In a recent question, I received suggestions to talk on, amongst other things, the aspect of JavaScript where functions are \'first class\' objects. What does the \'first c
In javascript functions are first class objects because it can do a lot more than what objects can do.
Function instanceof Object //returns true
Like an object a function can have properties and can have a link back to it’s constructor function.
var o = {}; // empty object 'o'
o.a = 1 ;
o.b = 2 ;
console.log(o.a); // 1
console.log(o.b); // 2
function foo(){};
foo.a = 3 ;
foo.b = 4 ;
console.log(foo.a); // logs 3
console.log(foo.b); // logs 4
var foo = function(){};
console.log(foo); // function(){}
function callback (foo){
foo();
}
callback(function(){console.log('Successfuly invoked as an argument inside function callback')})
function foo(){
return function(){console.log('working!')};
}
var bar = foo();
bar(); // working!
var sum = function (a,b){return a+b}
sum(4,4);