1
對於令人困惑的標題,我真的不知道如何命名我想要做的事。 我現在有這樣的代碼:抽象對象或創建類對象
const utils = (function() {
const tabsWithAudio = {
tabsArray: [],
add: function (tabId) {
const index = this.tabsArray.indexOf(tabId);
if (index < 0) {
this.tabsArray.push(tabId);
}
},
remove: function (tabId) {
const index = this.tabsArray.indexOf(tabId);
if (index >= 0) {
this.tabsArray.splice(index, 1);
}
},
contains: function (tabId) {
return (this.tabsArray.indexOf(tabId) > -1);
},
};
const tabsWithWidget = {
tabsArray: [],
add: function (tabId) {
const index = this.tabsArray.indexOf(tabId);
if (index < 0) {
this.tabsArray.push(tabId);
}
},
remove: function (tabId) {
const index = this.tabsArray.indexOf(tabId);
if (index >= 0) {
this.tabsArray.splice(index, 1);
}
},
contains: function (tabId) {
return (this.tabsArray.indexOf(tabId) > -1);
},
};
return {
tabsWithAudio: tabsWithAudio,
tabsWithWidget: tabsWithWidget,
};
}());
module.exports = utils;
然後我使用它們像這樣:
const utils = require('./modules/utils');
...
utils.tabsWithAudio.add(123);
....
但是由於所有的公益目標都是一樣的,我想創建一個類狀物體,我可以實例在旅途中,如:
let tabsWithAudio = new utils.tabsHelper();
utils.tabsWithAudio.add(123);
我嘗試這樣做,但裏面的一切原型沒有得到出口我想:
const utils = (function() {
const tabsHelper = function() {};
tabsHelper.prototype = {
tabsArray: [],
add: function (tabId) {
const index = this.tabsArray.indexOf(tabId);
if (index < 0) {
this.tabsArray.push(tabId);
}
},
remove: function (tabId) {
const index = this.tabsArray.indexOf(tabId);
if (index >= 0) {
this.tabsArray.splice(index, 1);
}
},
contains: function (tabId) {
return (this.tabsArray.indexOf(tabId) > -1);
},
};
return {
tabsHelper: tabsHelper,
};
}());
module.exports = utils;
任何想法我錯過了什麼?此外,這是什麼叫btw。
謝謝你。