避免重新定义require()

时间:2015-12-07 20:27:17

标签: javascript node.js

让我们考虑一下我想覆盖require()函数的情况,但我希望它能避免在某些时候进一步重新定义。请考虑以下情形:

// I redefine require here
var _require = require;
require = function(){
   // some code to redefine original require
}
// After this redefinition shouldn't happen

我知道有可能"冻结"对象的函数使用Object.freeze(obj)因此我不允许在语句后修改对象。但是我找不到像Object.freeze()这样的全局/本地函数的等效require

1 个答案:

答案 0 :(得分:0)

你想要使用

Object.defineProperty(window, "require", {
    // current `value` is used
    writable: false,
    configurable: false
});

不要忘记将_require隐藏在封闭范围内。