Добрый день. Помогите разобраться почему происходит следующее при сравнение двух функций?
В данном случае возвращается false:
function foo() {
var a = 2;
function bar() {
console.log( a );
}
return bar;
}
var baz = foo();
var bas = foo();
console.log(baz === bas);
А в этом true:
function foo() {
var a = 2;
function bar() {
console.log( a );
}
return foo;
}
var baz = foo();
var bas = foo();
console.log(baz === bas);
Я так понимаю что в первом случае происходит копирование тела функции и соответственно ссылки на них не равны, а во втором случае возвращается ссылка на функцию и они равны?(Как я понял сравниваются же ссылки на объекты а не содержимое) Если можно объясните этот момент подробнее.