0%

008重新認識JS-Day02-筆記2

函式

函式也是物件的一種

在JS中,雖然你對一個函式使用typeof,會回傳’function’,但實際上它也是物件的一種。

定義函式的方法

書中有介紹三種,分別為以下三種
.函式宣告
.函式運算式
.透過new Function方式來建立函式實體

Way1. 函式宣告(Function Declaration)
ex:

1
2
3
function Func(){
console.log("Hello");
}

Way2. 函式運算式(Function Expression)
ex:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
--函式運算式-匿名函式--
var square = function(num){
return num*num;
}



--函式運算式-具名函式--
用具名函式的話,要注意這個具名函式的名稱只能在他自己的函式定義範圍內使用,
若在該函式定義範圍外調用這個具名函式的名稱的話,編譯器會不知道它是誰
var square_1 = function func(num){
console.log(typeof(func)); // "function"
return num*num;
}

console.log(typeof(func)) // undefined,因為,在定義範圍外調用func,所以,會報錯

Way3. 透過new Function方式建立函式實體 (注意F是大寫喔)
ex:

1
var square = new Function('num', 'return num*num'); // 引數是num,函式內容是回傳num*num