【问题标题】:Javascript: Using function properties as "static" variables and optimizationJavascript:使用函数属性作为“静态”变量和优化
【发布时间】:2019-03-14 12:08:57
【问题描述】:

在 Javascript 中获取函数中的“静态”变量(如 C 中的“静态”关键字)的一种方法是将自定义属性分配给函数对象本身。

几年前,这导致了优化问题,例如。 V8 因为当函数对象的属性发生变化时,函数必须重新 JIT-ted 等。

现在还是这样吗,还是有可靠的方法来进行基准测试?

【问题讨论】:

    标签: javascript google-chrome v8 v8js


    【解决方案1】:

    V8 开发人员在这里。我不记得在函数对象上放置属性曾经引起过问题。你有这个说法的来源吗?可能是误会。

    无论如何,这些天你绝对可以毫无问题地做到这一点。

    【讨论】:

    • 谢谢。几年前,我在自己的语言中添加了一种用于“静态”函数范围变量的新语法,该语法可以转换为 JS,它基本上用 arguments.callee.foo 替换了@@foo。我想绝对确定这不会导致任何问题并且是优化安全的,所以我进行了大量研究,发现至少有一个消息来源说向函数添加属性会使 V8 的编译表示无效。很高兴知道它是安全的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多