javascript - "Extend"JS 数组就像传统的 OO 语言一样吗?

标签 javascript inheritance prototype

我正在深入研究 JavaScript。我知道通过修改原型(prototype)可以修改/增强 JavaScript 对象的行为。

出于特殊目的,我想采用数组并向其中添加各种行为。我完全明白为我的情况更改所有数组是不好的。但它是常规的面向对象语言,我可以扩展它,添加我的功能,而不用管原来的。 JS中有类似的东西吗?比如,我可以复制数组原型(prototype)并将其放入另一个类中并进行修改而不影响其他数组吗?或者有什么想法吗?

并不重要,但它会很有帮助,并且肯定会帮助我更深入地了解 JS,这是我在学习了多年 Java、C++ 等之后真正进入的领域。

最佳答案

您可以扩展 Array 类并将额外功能实现为该类上的方法。

而不是使用 let x = [];您现在使用let y = new myArray(); .

class myArray extends Array {
  constructor() {
    super();
    
    console.log(typeof this.push);
    console.log(typeof this.shift);
  }
  
  logAndAdd(variable) {
    this.push(variable);
    console.log(variable);
  }
}

let y = new myArray();

y.logAndAdd('hi');

关于javascript - "Extend"JS 数组就像传统的 OO 语言一样吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53818340/

相关文章:

javascript - 如何在浏览器扩展上下文中通过 TypeScript 访问全局变量(如果可能,部分输入)

entity-framework - Entity Framework : Inheritance and Include

javascript - OOP Javascript - "get property"方法是否必要?

java - 为什么 Spring @Configuration 类继承没有按预期工作?

c++ - 对于多态类的对象,对象的地址和指向对象的指针是否相同?

javascript - 局部变量在 javascript 的回调函数中变得未定义

javascript - 理解函数的原型(prototype)属性

javascript - Firebase 不断执行对 .lp 的请求?

javascript - 使用 gulp 创建选择性样式表

javascript - jquery:下拉菜单不显示固定位置 div 顶部的边框样式