小编Seb*_*ien的帖子

Chrome如何管理对javascript构造函数的引用

请考虑以下代码:

function A() {
    console.log("first");
}

var f = A;

function A() {
    console.log("second");
}

var g = A;

f();
g();
Run Code Online (Sandbox Code Playgroud)

它在萤火虫中输出"第一","第二",这是我认为它应该做的.
但它在Chrome控制台或firefox中输出"秒","秒",(从文件执行时,而不是在firebug中).
为什么要改变'f'中的参考值?我做第二个"函数A(){"??

看起来好像是吊装是问题(请参阅apsillers的回答).但是,为什么这个例子正常工作(我的意思是输出第一秒):

var A = function A() {
    console.log("first");
}

var f = A;

A = function A() {
    console.log("second");
}

var g = A;

f();
g();
Run Code Online (Sandbox Code Playgroud)

我在第二个函数声明中使用"A = ..."的事实阻止了这个函数的提升?

javascript google-chrome

3
推荐指数
1
解决办法
66
查看次数

标签 统计

google-chrome ×1

javascript ×1