Я написал следующий script, чтобы увидеть, что происходит, когда переменная и функция, у которой есть назначенная ей функция, имеют свои имена:
var f = function() {
    console.log("Me original.");
}
function f() {
    console.log("Me duplicate.");
}
f();
Выход, который я получаю, - "Я оригинален". Почему другая функция не вызывалась?
Кроме того, если я изменю свое первоначальное назначение на var f = new function() {, я получу "Я оригинал", а затем произнесет TypeError object is not a function. Может кто-нибудь объяснить?