javascript - 扩展 JavaScript 函数

标签 javascript function class prototype extend

有没有办法将下面的代码作为类扩展函数来执行?如果没有,有更好的方法吗?除了标准普通 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/

相关文章:

javascript - 从 Vanilla JS JSONP 回调调用 Angular 5 服务方法

java,在大字符串输入的某个字符处计数的代码

delphi - 为什么Delphi记录不能继承?

javascript - 将 onclick 函数扩展至 javascript 类

python : accessing a class variable from another module returns '' (Empty string) from imported module python

javascript - SVG中三 Angular 形的圆 Angular

javascript - 在 knockout 自定义绑定(bind)中添加事件处理程序

javascript - 停止设置间隔

ios - 带参数调用函数

C代码计算一个单词中有多少个字母