管理JS文件上的扩展冲突
-
16-10-2019 - |
题
我有(社区)扩展名,当您更改可配置产品的选项时,可以切换产品图像。这很棒。
我还开发了一些改变的扩展 select
图像和标签的可配置选项的元素。同样,这是按预期工作的。
现在问题. 。他们俩都需要从 head
阻止 varien/configurable.js
处理可配置产品并添加自己的文件的JavaScript文件。因此,基本上他们两个都覆盖了JS课程 Product.Config
. 。他们俩都需要覆盖 initialize
班上的功能,所以我无法添加我的扩展名 Product.Config.prototype.initialize = function(){...}
. 我可以吗?
可以想象,他们不会一起工作。
是否有任何方法可以解决此类冲突,而无需将社区扩展带入我的JS文件并在此基础上进行的更改?
解决方案
如上面的评论所述,根据所涉及的代码,您可以将原型product.config和从中继承。因此,例如这样:
var MyProduct.Config = Class.create(Product.Config, {
initialize: function($super, config){
$super(config); //this calls the parent initialize
//do your custom stuff here
}
});
有关原型继承的更多信息是 这里.
正如您之后猜到的那样,您将使用
spConfig = MyProduct.Config(...)
代替
spConfig = Product.Config(...)