Constructor comparison

Hi,
sorry to disturb you.


var foo = function() {};
var f = new foo();
f.constructor;//function
f.constructor === foo;//true 
function bar() {};
var b = new bar();
b.constructor; //bar()
b.constructor === bar;//true 

Why
f.constructor give me function
b.constructor give me bar()
what’s the difference ?

foo refers to an unnamed anonymous function, bar is a named global function.

Is a function expression

var foo = function() {};

Is a function declaration

function bar() {};

You can have a named function expression

var foo = function foo() {};

Tests

var foo = function foo() {};
var f = new foo();
console.log(f.constructor); // foo

var fn = function(){};
console.log(fn.name); // an empty string

var fn = function fn(){}; 
console.log(fn.name); // fn

Thanks to everybody.