前言
在看JavaScript 設計模式這本書的時候,覺得這邊整理得很好,想要筆記一下。
函式的 Hoisting
JavaScript 在函式(function)有兩個重要特色
- 函式是個物件
- 函式提供一個作用域
而 Hoisting 特色就是函式(function)跟變數一樣,也有 Hoisting 的特性,就是所有宣告的動作皆會提升至該作用域的頂端,而函式(function)比較需要注意的是,函示宣告式(如下所示)也是有這特性的
1 | function foo() {} |
另外比較需要注意的是,使用表示式的函式
1 | var foo = function () {}; |
使用表示式其 Hoisting 的只有該變數,跟變數相同,函式(function)尚未定義,如以下範例
1 | (function (){ |