HarmonyOS 执行ArkTS时对象属性系统与传统V8是否类似

HarmonyOS在运行ArkTs代码时,其对象属性系统与传统V8是否类似?例如V8中将Object的属性区分为 element/property、快属性/满属性/内存中属性等。

HarmonyOS中运行下面的代码,在Object.keys()的返回值中,obj的element按整数大小排序,property按创建时间排序。(与V8行为相同)

let obj: TsAny = {
  a: 'a',
  '12': 12,
  b: 'b',
  '5': 5,
  '44': 44,
  '5.5': 5.5
}
console.log(Object.keys(obj).toString())
//输出 5,12,44,a,b,5.5
HarmonyOS
6天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

系统ArkTS语言运行在自研的方舟编译运行时,运行的是应用包中经过方舟编译工具链编译ArkTS/TS/JS源码后生成的字节码。属性的顺序标准有定义的,开发者应该值依赖标准定义的行为,不应该依赖具体引擎实现,参考文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys#description

现在jsvm是遵从ECMAScript标准的,大多js引擎都遵循、v8也是,jsvm参考指南:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/jsvm-introduction-V5

分享
微博
QQ
微信
回复
5天前
相关问题
HarmonyOS 如何引入V8引擎
231浏览 • 1回复 待解决
HarmonyOS Kit传统SDK的区别
841浏览 • 1回复 待解决
arkts类似安卓clippadding的属性
2287浏览 • 1回复 待解决
ArkTS异步机制执行顺序
1983浏览 • 1回复 待解决
HarmonyOS 是否支持对象属性进行修改
59浏览 • 1回复 待解决
HarmonyOS 如何遍历对象属性
113浏览 • 1回复 待解决
如何实现ArkTSC/C++的对象传递
884浏览 • 1回复 待解决
提问
该提问已有0人参与 ,帮助了0人