首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么是v8::Value::ToDetailString()函数?

什么是v8::Value::ToDetailString()函数?
EN

Stack Overflow用户
提问于 2015-11-20 06:37:33
回答 2查看 368关注 0票数 1

我找不到这个函数的任何描述。即使在v8源代码分析之后,对我来说仍然不清楚,因为它是以"RETURN_NATIVE_CALL(to_detail_string...“结尾的,而且我在我的源代码中找不到to_detail_string

这里应该是关于这个函数的文档:value.html#a2f9770296dc2c8d274bc8cc0dca243e5

从v8源复制/粘贴:

代码语言:javascript
运行
复制
V8_WARN_UNUSED_RESULT MaybeLocal<String> ToDetailString(
      Local<Context> context) const;

MaybeLocal<String> Value::ToDetailString(Local<Context> context) const {
  auto obj = Utils::OpenHandle(this);
  if (obj->IsString()) return ToApiHandle<String>(obj);
  PREPARE_FOR_EXECUTION(context, "ToDetailString", String);
  Local<String> result;
  has_pending_exception =
      !ToLocal<String>(i::Execution::ToDetailString(isolate, obj), &result);
  RETURN_ON_FAILED_EXECUTION(String);
  RETURN_ESCAPED(result);
}

MaybeHandle<Object> Execution::ToDetailString(
    Isolate* isolate, Handle<Object> obj) {
  RETURN_NATIVE_CALL(to_detail_string, { obj });
}

有人能提供任何提示或指向文档的链接吗?

我可以打电话给它,看看结果,但我希望答案将包含一些有用的信息和链接。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-09 07:10:59

这是在messages.js中由ToDetailString实现的。

票数 1
EN

Stack Overflow用户

发布于 2015-12-10 10:18:06

来自V8/src/messages.js的函数定义:

代码语言:javascript
运行
复制
function ToDetailString(obj) {
  if (obj != null && IS_OBJECT(obj) && obj.toString === ObjectToString) {
    var constructor = obj.constructor;
    if (typeof constructor == "function") {
      var constructorName = constructor.name;
      if (IS_STRING(constructorName) && constructorName !== "") {
        return "#<" + constructorName + ">";
      }
    }
  }
  return ToStringCheckErrorObject(obj);
}

还请参阅此处讨论的片段:http://logs.nodejs.org/v8/2013-02-05 ToDetailString prints #<constructor name> if the object to be printed doesn't have a custom toString method. ToString prints [object <class of object>]. ToDetailString also handles error objects differently.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33820428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档