您的位置:首页 > 其它

函数声明和函数表达式

2016-08-25 15:50 85 查看
function foo(){

function bar() {

return 3;

}

return bar();

function bar() {

return 8;

}

}

alert(foo());

题 2:

function foo(){

var bar = function() {

return 3;

};

return bar();

var bar = function() {

return 8;

};

}

alert(foo());

题 3:

alert(foo());

function foo(){

var bar = function() {

return 3;

};

return bar();

var bar = function() {

return 8;

};

}

题 4:

function foo(){

return bar();

var bar = function() {

return 3;

};

var bar = function() {

return 8;

};

}

alert(foo());

答案是8、3、3和 [Type Error: bar is not a function]

分析:

//**Simulated processing sequence for Question 1**

function foo(){

//define bar once

function bar() {

return 3;

}

//redefine it

function bar() {

return 8;

}

//return its invocation

return bar(); //8

}

alert(foo());

return 语句后面的代码是运行不到的啊……

//**Simulated processing sequence for Question 2**

function foo(){

//a declaration for each function expression

var bar = undefined;

var bar = undefined;

//first Function Expression is executed

bar = function() {

return 3;

};

// Function created by first Function Expression is invoked

return bar();

// second Function Expression unreachable

}

alert(foo()); //3

//**Simulated processing sequence for Question 4**

function foo(){

//a declaration for each function expression

var bar = undefined;

var bar = undefined;

return bar(); //TypeError: "bar not defined"

//neither Function Expression is reached

}

alert(foo());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: