gpt4 book ai didi

c++ - 使用 nodejs javascript 或 c++ 插件覆盖 native nodejs 函数

转载 作者:太空宇宙 更新时间:2023-11-04 13:23:10 26 4
gpt4 key购买 nike

我正在尝试覆盖 nodejs 的原生功能并使其成为全局的。 (例如:控制台/要求)

这是我的方法:


M1 使用全局

我的Console.js

function myConsole() {
var nativeConsole = console;

// ... some code


}

myConsole.log = function() {
nativeConsole.log('It works!');
}

global.console = myConsole; // <-- HERE

索引.js

require('./myConsole.js');
require('./test.js');

测试.js

console.log('Not working. :(');

这失败了。


M2直接赋值

我的Console.js

function myConsole() {
var nativeConsole = console;

// ... some code


}

myConsole.log = function() {
nativeConsole.log('It works!');
}

*console = myConsole; // <-- HERE

索引.js

require('./myConsole.js');
require('./test.js');

测试.js

console.log('Not working. :(');

这也失败了。


有谁知道如何覆盖它?谢谢。

补充:我没有使用 c++ Node 模块的经验,是否可以覆盖 native 代码?

v8 reference

最佳答案

在您的示例中,log 函数无法访问 nativeConsole 变量。这需要改变。我也没有发现全局分配有任何问题 global.console = myConsole;

您可以试试这个(这使您可以访问自定义函数中的 nativeConsole 变量):

function myConsole() {
var nativeConsole = console;

// ... some code

return {
log : function() {
nativeConsole.log('something');
}
}

}

global.console = myConsole;

关于c++ - 使用 nodejs javascript 或 c++ 插件覆盖 native nodejs 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34261262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com