如何通过自定义构造函数在 Node JS 中扩展 class?

How can I extend a class in Node JS by my custom constructor?

我在 Node Js 模型中有以下内容。此文件存在于另一个无法更改但可在本地供其他项目使用的项目中。

module.exports = {
    base: require('*/cartridge/models/product/decorators/base'),
    availability: require('*/cartridge/models/product/decorators/availability')
};

这里的所有方法都像 class Productconstructors。现在我想添加另一个属性,当我尝试访问 Product.badge 时应该可用。为此,我尝试通过以下方式扩展上述模型:

var indexBase = require('*/cartridge/models/product/decorators/index');

indexBase.badge = require('*/cartridge/models/product/decorators/badge');

module.exports = indexBase;

但是好像报错了,我试过登录Badge Type,但是还是不能访问这里的徽章类型。

我调用上面的对象如下:

var decorators = require('*/cartridge/models/product/decorators/index');
decorators.badge(product, variantProduct);

我想知道在添加自定义 constructor 时如何扩展现有 class?

此处仅语法基于Node Js,但此代码是为 Salesforce B2C Commerce 中的 SFRA 编写的。

您需要做的就是在 index.js 文件中:

var indexBase = module.superModule;

而不是:

var indexBase = require('*/cartridge/models/product/decorators/index');

它会很好地工作。