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