为了账号安全,请及时绑定邮箱和手机立即绑定

实现一个可以继承 Array 的构造函数可行吗?

实现一个可以继承 Array 的构造函数可行吗?

qq_遁去的一_1 2018-12-27 22:15:40
伪代码如下:var Constructor = function(arr) {    // 在这里对传入的数组进行处理}var $ = function(arr) {    return new Constructor(arr);}Constructor.prototype = Object.create(Array.prototype);Constructor.prototype.add = function(item) { ... }我预期的结果是:$(arr) 作为 Constructor 的实例可以调用自定义的 add() 方法,也可以调用 Array.prototype 上的数组的原生方法。主要是不希望直接在 Array.prototype 上定义 add() 方法。arr = [1, 2, 3] 本来是 Array 的实例,但是我希望在 arr 和 Array 中间添加一个构造函数,即 arr 的原型链为 Constructor.prototype ==> Array.prototype我准备用上面伪代码的方式实现,但是 Constructor 内部不知道怎么处理,或者这种思路根本就是错的,各位大神不要被伪代码影响。请问可以实现这种功能吗?如果可以,怎么实现?
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

class Constructor extends Array {

    constructor() {

        super();

    }

    

    add(item) {

      // TODO: override add method

    }

}


var $ = arr => new Constructor().concat(arr);


查看完整回答
反对 回复 2019-01-08
  • 1 回答
  • 0 关注
  • 369 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信