函数声明 和 匿名函数表达式 在作用域内的区别
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();
函数声明可以提前,但是匿名函数表达式却不行。
相关文章推荐
- 第七章 函数表达式和函数声明,关于this对象 ,私有作用域(function(){})() ,私有变量和特权方法
- 函数声明与函数表达式的区别
- 函数声明、函数表达式、匿名函数、立即执行函数的区别
- 函数声明与函数表达式的区别
- 函数声明和函数表达式区别
- 函数声明和函数表达式的区别
- 函数声明与函数表达式的区别
- 函数声明和函数表达式的区别
- 深入理解,函数声明、函数表达式、匿名函数、立即执行函数、window.onload的区别.
- 函数声明的几种方式,函数声明与函数表达式的区别,函数调用的几种方式
- 函数声明与定义,作用域,函数声明与表达式的区别
- 函数声明与函数表达式的区别
- 函数声明和函数表达式的区别
- Javascript高级程序设计——函数声明与函数表达式的区别
- 变量在函数体内和函数内嵌作用域内定义区别
- 函数声明与函数表达式的区别
- 函数声明和函数表达式的区别
- 函数声明和函数表达式之间的区别
- 函数声明,函数表达式,块级作用域小结
- JavaScript的函数声明与函数表达式的区别