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,但没有初始化它的值;这就是为什么我们得到一个未定义的错误。