Javascript 不使用class关键字扩展数组

Javascript 不使用class关键字扩展数组,javascript,Javascript,是否可以在不使用class关键字的情况下扩展构建? 据我所知,class关键字不仅仅是语法上的糖。但是这个或类似的东西会起作用吗 MyArray = function () {} MyArray.prototype = Object.create(Array.prototype) 当然。正如您所注意到的,javascript中的继承是class关键字存在之前的事情。你的例子非常接近你将如何做到这一点。实际上,本文给出了一个示例,说明了如何在不使用类的情况下实现继承 要将他们的示例应用到您的示例

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

MyArray = function () {}
MyArray.prototype = Object.create(Array.prototype)
当然。正如您所注意到的,javascript中的继承是class关键字存在之前的事情。你的例子非常接近你将如何做到这一点。实际上,本文给出了一个示例,说明了如何在不使用类的情况下实现继承

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

常量MyArray=函数{ Array.callthis;//调用父构造函数 } MyArray.prototype=Object.createArray.prototype; MyArray.prototype.constructor=MyArray;//集合构造函数 //添加方法: MyArray.prototype.test=函数{ this.forEachelement=>console.logElement:,元素; } //现在,您可以创建从数组继承的新MyArray: const myArray=新的myArray; myArray.pushhello; myArray.pushworld; myArray.test 当然。正如您所注意到的,javascript中的继承是class关键字存在之前的事情。你的例子非常接近你将如何做到这一点。实际上,本文给出了一个示例,说明了如何在不使用类的情况下实现继承

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

常量MyArray=函数{ Array.callthis;//调用父构造函数 } MyArray.prototype=Object.createArray.prototype; MyArray.prototype.constructor=MyArray;//集合构造函数 //添加方法: MyArray.prototype.test=函数{ this.forEachelement=>console.logElement:,元素; } //现在,您可以创建从数组继承的新MyArray: const myArray=新的myArray; myArray.pushhello; myArray.pushworld;
myArray.test;太好了!为什么巴别塔不能做到这一点呢?至少浏览器似乎使你的版本与课堂版本有所不同。Array.isArraymyArray返回false。所以它并不完全等同于基于类的继承,对吗?那太好了!为什么巴别塔不能做到这一点呢?至少浏览器似乎使你的版本与课堂版本有所不同。Array.isArraymyArray返回false。所以它并不完全等同于基于类的继承,对吗?