一个简单的问题:在较深的物体上使用浅物体有好处吗?
在编写代码时,我倾向于使用深层对象,以便易于理解和分类。但是我想知道这个习惯是否会使我的代码变慢。
我已经做了测试,但是我不知道我做得是否正确。
//building necessary objects
var a = {};
var b;
b = a;
for (var i = 0; i < 100; i++) {
b["a"] = {};
b = b["a"];
}
var c = {};
//objects used
//a.a.a. ..(101 "a"s).. .a === {}
//c === {}
//1st test: shallow
var d;
var start = performance.now();
for (var i = 0; i < 1000000000; i++) {
d = c;
d = null;
}
var end = performance.now();
console.log('Shallow: ' + (end - start));
//2nd test: deeper
var e;
var start = performance.now();
for (var i = 0; i < 1000000000; i++) {
e = a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a;
e = null;
}
var end = performance.now();
console.log('Deeper: ' + (end - start));
结果(毫秒):
shallow 3229 3304 3246 3253 3277
deep 3375 3343 3247 3193 3248
较深物体的测试时间并不慢,但有时甚至比浅物体的测试时间还要快。
尽管有结果,但我不足以得出结论,他们的速度相同。
他们两个之间有什么区别吗?
最佳答案
关于javascript - 深度对象在JavaScript中会变慢吗?如果有的话,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46047145/