JavaScript 中的普通函式與箭頭函式?
普通函式與箭頭函式
箭頭函式用於更簡潔地編寫程式碼。普通函式和箭頭函式的工作方式類似,但它們之間也有一些區別。讓我們簡要討論一下這些區別。
箭頭函式語法
let x = (params) => {
// code
};普通函式語法
let x = function functionname(params){
// code
};“this”關鍵字的使用
箭頭函式無法使用“this”關鍵字,而普通函式可以使用而不會出現任何問題。
示例
在下面的示例中,普通函式(矩形)和箭頭函式(正方形)都用在物件“num”內,該物件包含 len(長度)和 bre(寬度)屬性。我們的目標是使用箭頭函式計算正方形的面積(len*len)和使用普通函式計算矩形的面積(len*bre)。但是,由於箭頭函式中“this”關鍵字不起作用,因此正方形的面積值將返回“NaN”,而使用普通函式,我們得到了矩形的精確面積,如輸出所示。
<html>
<body>
<script>
var num = {
len: 12,
bre: 13,
square:() => {
document.write(this.len * this.len);
},
rectangle(){
document.write(this.len * this.bre);
}
};
num.square();
document.write("</br>");
num.rectangle();
</script>
</body>
</html>輸出
NaN 156
“new”關鍵字的使用
箭頭函式不是“可構造的”而是“可呼叫的”,因此“new”關鍵字在這裡不起作用,而普通函式既“可呼叫”又“可構造”,因此“new”關鍵字在這裡起作用。
示例
在下面的示例中,使用“new”關鍵字將一些引數傳遞給普通函式和箭頭函式。但是,由於箭頭函式不是“可構造的”,我們將得到一個錯誤,而普通函式將得到一個合法的輸出。
<html>
<body>
<script>
var word = function(){
document.write(JSON.stringify(arguments));
/// executes '{"0":"Tutorix","1":"Tutorialspoint"}' as output
};
new word("Tutorix","Tutorialspoint");
var newword = ()=> {
document.write(JSON.stringify(arguments));
//executes 'newword is not a constructor' as output
};
new newword("Tutorix","Tutorialspoint");
</script>
</body>
</html>
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP