Синтаксически я бы предпочел что-то вроде этого
function own(obj) {
var ownprops = {};
for (var prop in obj)
if (obj.hasOwnProperty(prop)) ownprops[prop] = 1;
return ownprops;
}
for (var property in own(object)) {
//code
}
Выглядит хорошо, но это влечет за собой два цикла на одном и том же объекте, а не с точки зрения производительности.
Другой способ сделать этоis functionaly
function foreach(obj, func, thisp) {
for (var prop in obj)
if (obj.hasOwnProperty(prop)) func.call(thisp, obj[prop], prop);
}
foreach(object, function(val, key) {
//code
});
Только один цикл, но функция вызывается для каждой итерации, что не очень хорошо с точки зрения производительности, но лучше, чем последнее решение.Обратите внимание, что оно также сокращает значение this
, но вы можете явно передать это значение в качестве необязательного третьего аргумента.
Просто некоторые альтернативы.То, как вы это делаете, и то, как Дэниел объясняет, просто прекрасно и без ущерба для производительности.
Кроме того, я хотел бы отметить, что у вас нет для отступа кода для каждой фигурной скобки ...