您的位置:首页 > 其它

函数声明 和 匿名函数表达式 在作用域内的区别

2013-05-08 10:06 260 查看
// 反模式,仅用于演示

// 全局函数
function foo() {
alert('global foo');
}
function bar() {
alert('global bar');
}

function hoistMe() {

console.log(typeof foo); // "function"
console.log(typeof bar); // "undefined"

foo(); // "local foo"
bar(); // TypeError: bar is not a function

// 函数声明:
// 变量foo和它的定义实现都被提前了

function foo() {
alert('local foo');
}

// 函数表达式:
// 只有变量bar被提前,它的定义实现没有被提前
var bar = function () {
alert('local bar');
};
}
hoistMe();


函数声明可以提前,但是匿名函数表达式却不行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: