我有一个变量,该变量基于对象是否具有长度作为其属性之一来设置。如果没有,那么我需要检查其中一个属性是否存在。如果是这样,则获取存储在该对象中的第一个数组并返回长度,否则将变量设置为一个。这可以在这样的语句中组合起来。
var b=someObject;
var len = b.num||(b.arrs?(function(a){for(var x in a)return a[x].length})(b.arrs):false)||1;
这样做的另一种方法是拉出功能并像这样
function getLength(a){for(var x in a)return a[x].length})
var b=someObject;
var len = b.num||(b.arrs?getLength(b.arrs):false)||1;
我想知道与另一种方式相比,这样做是否会降低性能?javascript引擎对它们的看法有什么不同吗?我更喜欢第一种方法的原因是它使我无法拥有一堆额外的辅助函数。