CNode

JS函数问题

问答
Xxiaobai2017666发布于8 年前最后回复8 年前2 回复3148 浏览0 收藏
var foo=function bar() {};

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

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

回复 (2)

D
dbit-xia#1·8 年前

因为外面访问不了bar

[CNodeMD]

J
justjavac#2·8 年前

根据规范:

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'
};
参与回复
登录后即可参与回复。登录