Javascript 如何将继承从我自己的类设置为内置类

Javascript 如何将继承从我自己的类设置为内置类,javascript,Javascript,如何将继承从我自己的类设置为内置类 我们得到了大的内置类图像(例如,我在画布中使用它来显示图像) 我希望我的图像可以有我自己的类计数器的方法和属性 class Counter { constructor { this.orientation = orientation } } 如何从我的类计数器(corse的)设置类映像的继承,而不重写映像的构造函数? 也许这是一个无关紧要的问题,但在我所看到的所有课程中,子类都是从内置类创建并继承的,现在我需要相反的结果。 这

如何将继承从我自己的类设置为内置类

我们得到了大的内置类图像(例如,我在画布中使用它来显示图像)

我希望我的图像可以有我自己的类计数器的方法和属性

class Counter {
    constructor {
        this.orientation = orientation
    }
}
如何从我的类计数器(corse的)设置类映像的继承,而不重写映像的构造函数? 也许这是一个无关紧要的问题,但在我所看到的所有课程中,子类都是从内置类创建并继承的,现在我需要相反的结果。
这也可能是错误的解决方法。在这种情况下,如果有人告诉我正确的方法,我会很感激,因为“我不知道我不知道的”


谢谢大家!

简单方法-使用调用计数器的方法扩展图像原型:

Image.prototype.imageCount = function() {
    let me = this;
    let counter = new Counter();
    return counter.count(me.numberOfImages);
}

// usage
let myImage = new Image();
myImage.numberOfImages = 42;
myImage.imageCount(); // will call counter

通过这种方式,计数器方法被包装在Image类中,并且是Image类原型的一部分。

也许您希望在Image类中有计数器类的实例,或者可以使用Image类中的方法包装对计数器方法的调用?这就是所谓的合成。继承并不总是一个正确的解决方案?听到什么了。也许你有一些简单的例子?是的。例如,您希望在图像中有计数器的方法。在Image类中创建Counter类的实例:class Image{private Counter myCounter=new Counter();…etc//现在您可以通过从Image callCounter()调用Counter方法来访问Counter方法{return myCounter.count();}这意味着计数器是映像的一部分,您可以使用从中调用的方法,只需使用调用计数器的映像方法将其包装起来。如果我们谈论的是设计模式,它接近于外观,好吧,很抱歉,我不知道您有一个不属于您的Image类。然后可以使用如下方法扩展图像原型:Image.prototype.callCounterMethod=function(){Counter Counter=new Counter;return Counter.count()}通过这种方式,您将使用内部使用计数器执行某些操作的方法来扩展图像原型,您也可以拥有属性。请阅读一些关于原型继承的总体信息,以及如何扩展任何内置Javascript类的原型。
Image.prototype.imageCount = function() {
    let me = this;
    let counter = new Counter();
    return counter.count(me.numberOfImages);
}

// usage
let myImage = new Image();
myImage.numberOfImages = 42;
myImage.imageCount(); // will call counter