使用JavaScript模块化模式,我试图通过它的子节点覆盖父类中定义的变量。
我已将这些类定义为附件。
var parentClass = (function () {
var _tabsPerCall;
var _nextCall;
var _tabsArray;
var loadNext = function () {
var nextCallAmount = _tabsPerCall + _tabsPerCall;
_nextCall = (_tabsArray.length - nextCallAmount) >= 0 ? nextCallAmount : _tabsArray.length;
};
return {
get: function () {
return _tabsArray.slice(0, _nextCall);
},
clicked: function (tabIndex) {
if (tabIndex === _nextCall) {
loadNext();
}
}
};
})();
var child1Class = (function (parentClass) {
var newObj = parentClass;
newObj._tabsPerCall = 6;
newObj._nextCall = 6;
newObj._tabsArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
return newObj;
})(parentClass);
var child2Class = (function (parentClass) {
var newObj = parentClass;
newObj._tabsPerCall = 5;
newObj._nextCall = 5;
newObj._tabsArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
return newObj;
})(parentClass);
但是,当我调用childClass.get()时,我收到一个错误,指出_tabsArray未定义。
两个孩子都需要为_tabsPerCall,_nextCall和_tabsArray维护不同的值。
之前,我试图这样做,但两个孩子共享同一个parentClass实例:
var childClass= (function (tabBtnBuilder) {
tabBtnBuilder._tabsPerCall = 6;
tabBtnBuilder._nextCall = 6;
tabBtnBuilder._tabsArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
return tabBtnBuilder;
})(tabBtnBuilder);
我没有正确覆盖parentClass吗?
我需要两个孩子从parentClass继承,但他们需要维护自己的parentClass变量实例。