JS函数问题
发布于 6 年前 作者 xiaobai2017666 2491 次浏览 来自 问答
var foo=function bar() {};

为什么以上代码分解后为这样?看起来var bar不是应该放在外面?

var foo=function () {
	var bar = ...self...
}
2 回复

因为外面访问不了bar

[CNodeMD]

根据规范:

var foo=function bar() {};

并不等于

function bar() {};
var foo=bar;

例如以下代码:

var foo=function bar() {};
foo.name === 'bar';

var foo=function () {};
foo.name === 'foo'

var foo=function bar() {};
bar();  // ReferenceError: bar is not defined

var foo=function bar() { 
    console.log(foo.name);	   // 'bar'
	console.log(bar.name);     // 'bar'
};
回到顶部