V8中的隐藏类
Hidden classes in V8
我的问题是这个问题的后续:清除V8的"隐藏类"概念
假设我有以下JavaScript代码:
var values1 = [ 1, 2, 3, 4];
var values2 = [ 5, 6, 7, 8];
var fields = [ "f1", "f2", "f3", "f4" ];
function Construct (fields, values) {
var i;
for (i = fields.length - 1; i >= 0; --i) this [fields [i]] = values [i];
}
var a = new Construct (fields, values1);
var b = new Construct (fields, values2);
那么,a
和b
最终会有相同的隐藏类吗?
这个问题的背景是,对我来说,如果在编程时不知道属性名,这似乎是利用"隐藏类"优化的唯一可能性。
实际意义:假设您编写了一个处理表格数据的应用程序,其中列的名称是动态的(编程时不知道)。然后表的行在语义上共享相同的类,但是如果引擎没有优化,您最好使用数组并在代码中手动进行"列名->索引"转换(这可能会使代码变得丑陋,因为您必须缓存索引)。
是。隐藏类是一个完全动态的优化。在第一个近似中,如果(1)两个对象是由同一段代码创建的,并且(2)它们以相同的顺序添加了相同的属性,则两个对象最终将具有相同的类。
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 显示5秒后隐藏潜水
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- 浮动页脚栏-使用Bootstrap隐藏
- 在jquery中为显示/隐藏设置cookie
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 从var向代码隐藏函数传递值
- Image赢得't隐藏在滚动jQuery上
- 具有rowGrouping的数据表无法隐藏列
- Jquery隐藏未触发
- JavaScript 检查隐藏字段中的值并将其设置为隐藏字段值
- 分部隐藏在jquery中不起作用
- 点击后隐藏潜水?(但如果Div是一面旗帜呢?)
- javascript.点击隐藏事件故障
- 禁用(而不是隐藏)浏览器滚动条
- PHP Javascript显示/隐藏按钮不工作
- 如何使用v8隐藏类优化技术进行优化
- V8中的隐藏类
- JavaScript V8中的普通对象有隐藏类吗?