有没有办法将下面的代码作为类扩展函数来执行?如果没有,有更好的方法吗?除了标准普通 JavaScript
,我不想使用任何东西Function.prototype._data = new Map();
function TEMP (key) { return TEMP._data.get(key) }
TEMP.remove = function(id) { TEMP._data.delete(id) };
TEMP.reset = function() { TEMP._data.clear()};
TEMP.store = function(key, val) { TEMP._data.set(key, val) }
当前类是这样的:
class Temp extends Function {
constructor(){
super();
this._data = new Map();
}
remove(key) { this._data.delete(key) }
reset() { this._data.clear() }
store(key, val) { this._data.set(key, val) }
};
我是 Stack Overflow 的新手,无法在任何地方找到答案。
最佳答案
更好的方法是不涉及Function.prototype
。就这样
function TEMP (key) { return TEMP._data.get(key) }
TEMP._data = new Map(); /*
^^^^^^^^^^^^ */
TEMP.remove = function(id) { TEMP._data.delete(id) };
TEMP.reset = function() { TEMP._data.clear()};
TEMP.store = function(key, val) { TEMP._data.set(key, val) }
因为在你的程序中只有一个 TEMP
和一个 Map
,所以没有理由在这里涉及一个 class
。
如果您需要多个实例,并坚持为此扩展 Function
而不是使用简单的工厂,请参阅 How to extend Function with ES6 classes? .
关于javascript - 扩展 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49821288/