为什么使用Local <value> :: New和String :: New()</value>

时间:2014-03-01 13:01:27

标签: node.js v8 embedded-v8

我用过这个:

 Local<Value> argv[argc] = { String::New("hello world") };

但现在我在node.js网站上看到了这个例子:

 Local<Value> argv[argc] = { Local<Value>::New(String::New("hello world")) };

这是什么意思?有什么区别,除了Local<Value>

之外我还应该使用String::New()

1 个答案:

答案 0 :(得分:3)

显然,在这种情况下,node.js示例是错误/低效的。

https://github.com/joyent/node/commit/98aad77f466d9c36947f2cbb6d07b75009795ed2#commitcomment-5532648

  

jnardone在2小时前添加了一条说明

     

这只是其中一件总是错误的事情,或者是在那里   一个潜在的v8变化意味着这应该改变?该   额外的本地::新总是看起来很奇怪,但我不知道是否有什么   埋在v8里面需要这个额外的包装。

     

bnoordhuis在7分钟前添加了一条注释

     

这是清理。从本地创建本地不是   积极有害,但它是多余的,效率稍低。

所以,你的第一种格式很好。