为什么JavaScript中的函数设置为全局变量而不是普通函数?

为什么JavaScript中的函数设置为全局变量而不是普通函数?,javascript,function,anonymous-function,Javascript,Function,Anonymous Function,我想知道是否有人知道为什么有些人定义设置为函数的全局变量,而不是仅仅定义一个全局函数名。例如: var foo = function() { alert('hello!'); } 而不是 function foo() { alert('hello!'); } 第二种方法不是更好吗?因为有可能有什么东西会覆盖第一个变量,而您将丢失该函数?这与扩展对象有关吗?是否存在性能问题

我想知道是否有人知道为什么有些人定义设置为函数的全局变量,而不是仅仅定义一个全局函数名。例如:

var foo = function() { alert('hello!'); }
而不是

function foo() { alert('hello!'); }
第二种方法不是更好吗?因为有可能有什么东西会覆盖第一个变量,而您将丢失该函数?这与扩展对象有关吗?是否存在性能问题