如何通过自定义构造函数在 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 Product
的 constructors
。现在我想添加另一个属性,当我尝试访问 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');
它会很好地工作。
我在 Node Js
模型中有以下内容。此文件存在于另一个无法更改但可在本地供其他项目使用的项目中。
module.exports = {
base: require('*/cartridge/models/product/decorators/base'),
availability: require('*/cartridge/models/product/decorators/availability')
};
这里的所有方法都像 class Product
的 constructors
。现在我想添加另一个属性,当我尝试访问 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');
它会很好地工作。