JavaScript Weird Part (32) - 框架小叮嚀:重載函數

這一節是關於框架或資源庫的應用。首先要了解的是為什麼 JavaScript 去掉一些其他程式語言的特性,這些特性又為何不重要。

重載函數 (Function overloading)

像是 Java、C++ 等程式語言都有重載函數的概念,這表示我讓同一個函數可以擁有不同數量的參數。但是這在 JavaScript 行不通,因為函數就是物件。儘管 JavaScript 不具備這個功能,但是我們也可以用 JavaScript 的一級函式概念處理

好比說「我不想要每次一直傳入 language 參數」。我們已經看過可以使用預設參數或 || 運算子,然後使用這個函數裡的邏輯條件運算來決定。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function greet(firstname, lastname, language) {
language = language || 'en';
if (language === 'en') {
console.log('Hello ' + firstname + ' ' + lastname);
}

if (language === 'es') {
console.log('Hola ' + firstname + ' ' + lastname);
}

}

greet('John', 'Doe','en');
greet('John', 'Doe','es');

第二種方式是再包覆一層函式的方式

1
2
3
4
5
6
7
8
9
10
function greetEnglish(firstname, lastname) {
greet(firstname, lastname, 'en');
}

function greetSpanish(firstname, lastname) {
greet(firstname, lastname, 'es');
}

greetEnglish('John', 'Doe');
greetSpanish('John', 'Doe');

儘管 JavaScript 沒有重載函式的概念,但是仍然有處理這一類問題的方式。

Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2020 CYC'S BLOG All Rights Reserved.

UV : | PV :