node.js - 我需要定义什么方法来实现nodejs/v8中的检查功能

标签 node.js v8

我有一个集成到 NodeJS 中的 C++ 类,我想更改其默认对象打印

示例:

var X = new mypkg.Thing() ;
console.log( X ) ;             // prints the object in std way
console.log( X.toString() ) ;  // prints Diddle aye day
console.log( '' + X ) ;        // prints Diddle aye day

我已经在外部代码中定义了 ToString,它有效。但我希望默认打印是相同的。

 void WrappedThing::ToString( const v8::FunctionCallbackInfo<v8::Value>& args ) {
     Isolate* isolate = args.GetIsolate();
     args.GetReturnValue().Set( String::NewFromUtf8( isolate, "Diddle aye day") );
 }

是否有可覆盖的“检查”方法?

TIA

最佳答案

node.js util documentation 中有一个关于此的部分。 。基本上,您可以在对象/类上公开 inspect() 方法,或者通过特殊的 util.inspect.custom 符号设置函数对象。

以下是使用特殊符号的一个示例:

const util = require('util');

const obj = { foo: 'this will not show up in the inspect() output' };
obj[util.inspect.custom] = function(depth, options) {
  return { bar: 'baz' };
};

// Prints: "{ bar: 'baz' }"
console.log(util.inspect(obj));

关于node.js - 我需要定义什么方法来实现nodejs/v8中的检查功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40698846/

相关文章:

python - 如何保持 node.js 和 python 之间的连接状态?

httpwebrequest - 如何向 3rd 方 API 编写 Node.js 请求?

javascript - 在哪里可以找到 XMLHttpRequest 实现?

javascript - Javascript 子串是虚拟的吗?

javascript - 如何在 V8 中公开 C++ 类成员

node.js - 使用opencv和node比较2张人脸的相似度

node.js - 在服务器之间扩展 socket.io

node.js - yarn - 命令 yarn 导入错误 : This package doesn't seem to be present in your lockfile; try to make an install to update your resolutions

node.js - 使用 node.js 时是否有很好的 V8 命令行参数引用

javascript - 隐藏类以及 {} 对象与自定义构造函数之间的等效性 (v8)