当前位置: 首页 > 知识库问答 >
问题:

如何更改出现在toString()中的Javascript函数名?

柴茂材
2023-03-14

function.name属性是可配置的,并且可以重写,但是如果我尝试

function foo() {}
Object.defineProperty(foo, 'name', {value: 'bar'})

共有1个答案

萧繁
2023-03-14

你不能百分之百可靠地做到这一点。这是因为function.prototype.toString的定义,它使用[[SourceText]]内部插槽,该插槽是根据用于创建函数的源代码创建函数时设置的。它不使用name属性。

您也可以尝试重写函数上的tostring,但是如果有人在函数上显式地使用function.prototype.tostring,那么这当然还是会失败。

 类似资料:
  • 我的功能有问题,它使用作为进行搜索,但数据库中没有 我有一个错误: Illumb\Database\QueryException(42S22)SQLSTATE[42S22]:未找到列:“where子句”中的1054未知列“courses.id”(SQL:select*fromwhereid=cmpe102 limit 1)

  • 问题内容: 我是Flask和python的新手。我有一堆视图以jsonify()格式返回字典。对于这些视图,我想添加一个after_request处理函数以更改响应,以便可以向该字典添加键。我有: 我得到的错误是“ TypeError:列表索引必须是整数,而不是str”。请求完成后,如何更改响应字典并添加密钥? 问题答案: 是WSGI对象,这意味着响应的主体必须是可迭代的。对于响应来说,这只是一个

  • 问题内容: 该函数仅采用字符串切片: 但是,能够传递实现函数的任意对象会很好。 Go中是否有类似的东西,还是我必须用ToString方法来修饰现有类型并编写一个包装器? 问题答案: 将方法附加到任何命名类型,并享受任何自定义“ ToString”功能: 游乐场:http://play.golang.org/p/Azql7_pDAA 输出量

  • 我有这个变量: 通过单击按钮,我执行此功能: 变量不会改变,我的输出是: 但是如果我第二次按下按钮,我会得到输出: 为什么值第一次不改变?

  • 我们正在开发几个部署到Azure Function Apps的Quarkus(在撰写本文时为2.5.4)应用程序。 我们注意到,我们所有的日志,无论代码的严重性如何,都在应用洞察中显示为信息。 我们已将 jboss 日志管理器添加到依赖项中: 当我检查日志时,它显示为这样。 2022-02-24T07:58:14.325[Information] 2022-02-24T07:58:14.308[I