JavaScript 元組示例
Muhammad Muzammil Hussain
2023年10月12日
在 JavaScript 語言中,元組是具有不可變特性的陣列型別。我們可以使用一個變數訪問元組,該變數是一個陣列
型別。
JavaScript 中的元組
class MyBestTupleExplanation extends Array {
constructor(...items) {
super(...items);
Object.freeze(this);
}
}
let tuple = new MyBestTupleExplanation('Afridi', 35, 'White');
let [myName, myAge, skinColor] = tuple;
console.debug(myName); // Afridi
console.debug(myAge); // 35
console.debug(skinColor); // White
console.debug('******************************************');
console.debug('Now we are re-assigning the values to tuple');
console.debug('******************************************');
tuple = ['Bob', 24]; // no effect
console.debug(myName); // Afridi
console.debug(myAge); // 35
console.debug(skinColor); // White
輸出:
Afridi
35
White
******************************************
Now we are re-assigning the values to tuple
******************************************
Afridi
35
White
在上面的例子中,我們建立了一個名為 MyBestTupleExplanation
的類,繼承自 Array
類。它將表現得像一個陣列,但具有不變性特徵。在這個類中,我們用 super
方法呼叫 Array
類的建構函式。
在上面的程式碼中,我們使用了 MyBestTupleExplanation
類,在它的建構函式中,我們從父類 Object
呼叫方法 freeze
並將一個陣列傳遞給它。
在建立這個類之後,我們建立了該類的名為 MyBestTupleExplanation
的物件,並通過建構函式傳遞值。
我們建立了一個匿名變數陣列並將我們的元組分配給該陣列。元組中的元素將按索引分配給 array
。如果我們稍後將值重新分配給該元組,它將不起作用。如示例所示,我們不能將值重新分配給元組。
JavaScript 元組示例 2
class MyBestTupleExplanation extends Array {
constructor(...items) {
super(...items);
Object.freeze(this);
}
}
let tuple = new MyBestTupleExplanation('Afridi', 35);
let [myName, myAge, skinColor] = tuple;
console.debug(myName); // Afridi
console.debug(myAge); // 35
console.debug(skinColor); // undefined
輸出:
Afridi
35
undefined
在上面的例子中,我們建立了一個變數 skinColor
,但沒有初始化它的值;這就是為什麼我們得到一個未定義的錯誤。