JavaScript 元組示例

Muhammad Muzammil Hussain 2023年10月12日
  1. JavaScript 中的元組
  2. JavaScript 元組示例 2
JavaScript 元組示例

在 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,但沒有初始化它的值;這就是為什麼我們得到一個未定義的錯誤。