Как я могу расширить класс в 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');
и это будет прекрасно работать.