函式最基本的形式長這樣 :
function greet(name) {
return "Hello, " + name + "!";
}
這個函式接受一個參數name
,並返回一個問候語。您可以這樣調用它
console.log(greet("Alice")); // 輸出: Hello, Alice!
接下來講宣告函式跟箭頭函式,函式的宣告方式會影響 this
的指向 :
語法:
function functionName(parameters) {
return result;
}
特點:
function
關鍵字this
綁定例子:
function greet(name) {
return `Hello, ${name}!`;
}
console.log(greet("Alice")); // 輸出: Hello, Alice!
箭頭函式是 ES6 引入的簡潔函式語法。
語法:
const functionName = (parameters) => {
return result;
};
特點:
=>
符號this
,繼承外圍作用域的 this
例子:
const greet = (name) => `Hello, ${name}!`;
console.log(greet("Bob")); // 輸出: Hello, Bob!
主要區別:
this
綁定:
this
綁定,根據調用方式決定函式提升:
使用情況:
以下有兩個例子,都是關於this的指向性
// 宣告函式
const obj1 = {
name: "Object 1",
greet: function() {
console.log(`Hello from ${this.name}`);
}
};
// 箭頭函式
const obj2 = {
name: "Object 2",
greet: () => {
console.log(`Hello from ${this.name}`);
}
};
obj1.greet(); // 輸出: Hello from Object 1
obj2.greet(); // 輸出: Hello from undefined (因為箭頭函式沒有自己的 this)
總結:
this
是動態綁定的,取決於函式如何被調用。this
是靜態的,在函式創建時就確定了,它繼承自外層作用域的 this
。參考資料 :
iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天 (ithome.com.tw)