gpt4 book ai didi

javascript - 不使用 class 关键字扩展数组

转载 作者:行者123 更新时间:2023-11-30 09:18:53 24 4
gpt4 key购买 nike

是否可以在不使用 class 关键字的情况下扩展构建?据我了解,class 关键字不仅仅是语法糖。但是这个或类似的东西会起作用吗?

MyArray = function () {}
MyArray.prototype = Object.create(Array.prototype)

最佳答案

当然。正如您所注意到的,javascript 中的继承是 class 关键字存在之前的事情。您的示例与您执行此操作的方式非常接近。事实上,the documentation for Object.create给出了一个如何在不使用 class 的情况下实现继承的示例。

要将他们的示例应用到您的示例中,您可以这样做:

const MyArray = function() {
Array.call(this); // Call parent constructor
}

MyArray.prototype = Object.create(Array.prototype);
MyArray.prototype.constructor = MyArray; // Set constructor

// Add methods:
MyArray.prototype.test = function() {
this.forEach(element => console.log("Element:", element));
}

// Now you can create new MyArray's that inherit from Array:

const myArray = new MyArray();

myArray.push("hello");
myArray.push("world");
myArray.test();

关于javascript - 不使用 class 关键字扩展数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53122910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com