javascript - 在 AngularJS 中将变量从 HTML 传递到 Javascript 时,与整个对象相比,性能有何改进

标签 javascript html arrays angular for-loop

我可以将迭代对象作为一个整体从 HTML 传递到 Javascript,如下所示

<!-- HTML --!>
(click)="onChange(item)"
/* js */
onChange(item) {
getDetails(item.id, item.date, item.count)
}

或者我可以传递迭代对象唯一必需的属性,如下所示

<!-- HTML --!>
(click)="onChange(item.id, item,date, item.count)"
/* js */
onChange(id, date, count) {
this.getDetails(id, date, count)
}

考虑迭代项具有大约 15 个属性

item = {
id:"01",
date: "12/12/2017",
count:"1000",
name:"John Doe",
email:"john@doe.com"
...
...
... // goes on 

}

我只是想知道上面哪种方法可以提供更好的性能,传递属性还是整个对象?我相信,我只想传递属性而已。无论如何,代码在这两种方面都运行得更快。但如果有人能解释真正的区别,那就太好了。

最佳答案

我认为像v8这样的javascript引擎将它们的对象属性存储在 HashMap 中,这使得它成为o(1),因此如果你传递对象并从函数内部访问属性,它不会有任何区别,但是如果你迭代嗯,会比较慢

关于javascript - 在 AngularJS 中将变量从 HTML 传递到 Javascript 时,与整个对象相比,性能有何改进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49251136/

相关文章:

javascript - 如何在 Intl.NumberFormat 中获取正数的前导 '+'?

javascript - 如何在 Node.js 中正确构建类

c - 两个列表元素总和比较的最小复杂度

javascript - d3 动画树形图 CSV - 不可缩放

jquery - 如何用mysql实现无限滚动?

java - HtmlUnit - 按值获取 radio

javascript - 突出显示事件 HTML 部分的相应菜单项

java - 通过哈希码比较两个数组

java - 二维数组和 JApplet : button visibility and label change

javascript - 如何在 Angular 中向数组添加重复元素