Как я могу расширить класс в Node JS с помощью моего пользовательского конструктора?

У меня есть следующее в Node Js модель. Этот файл существует в другом проекте, который нельзя изменить, но локально доступен для других проектов.

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

Все методы здесь действуют как constructors из class Product, Теперь я хочу добавить еще один атрибут, который должен быть доступен при попытке доступа 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?

Здесь только синтаксис основан на Node Js но этот код написан для SFRA в Salesforce B2C Commerce.

1 ответ

Решение

Все, что вам нужно сделать, это в index.js файл:

var indexBase = module.superModule;

вместо:

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

и это будет прекрасно работать.

Другие вопросы по тегам