| 
 работа с объектами Ребята, добрый день всем! Подскажите пожалуйста, как проверить объект, созданый литералом т.е 
var obj = {};
на пустоту, не используя конструкцию for... in..? Спасибо! | 
| 
 Вроде никак не выйдет. | 
| 
 а чем for(… in …) не нравится? | 
| 
 Конструкцию for(...in...) просто обожаю, но в моем случае слишком громоздко получается. | 
| 
 Можно функцию написать. Вроде того: 
Object.isBlank = function(obj) {
	if (obj == null) return false;
	if (obj instanceof Array || typeof obj == 'string') return !obj.length;
	var blank = new obj.constructor();
	for (var key in obj) if (!(key in blank) || obj[key] !== blank[key]) return false;
	return true;
};
 | 
| 
 функция в 2 строчки, что там громоздкого 
function isEmpty(obj) {
   for (var key in obj) return false;
   return true;
}
 | 
| 
 Тоесть, если объект пустой, то конструкция for(var key in obj) просто не отработает? | 
| 
 Ну так это самые основы :-) тело цикла ниразу не выполнится. | 
| 
 Вот спасибо! | 
| 
 В дополнение, лучше сделать проверку на if (obj.hasOwnProperty(key)), т.к. в Object.prototype может оказаться что-то, учитываемое при итерации for ... in (не имеющее {DontEnum}). | 
| Часовой пояс GMT +3, время: 08:08. |