javascript как узнать все свойства объекта

Небольшая функция на javascript, которая позволяет узнать все свойства объекта Вот сама функция:
function fnShowProps(obj, objName){
    var result = "";
    for (var i in obj) // обращение к свойствам объекта по индексу
        result += objName + "." + i + " = " + obj[i] + "
\n";
    document.write(result);
}
Вот пример исползования:
fnShowProps(window.location, "location")
Результат:

location.pathname = /JavaScript/
location.protocol = http:
location.search = ?8
location.hash =
location.hostname = htmlcssjs.ru
location.href = http://htmlcssjs.ru/JavaScript/?8
location.host = htmlcssjs.ru
location.port =
location.reload = function reload() { [native code] }
location.replace = function replace() { [native code] }
location.assign = function assign() { [native code] }
Источник: http://htmlcssjs.ru/JavaScript/?8  

foreach в javascript

Во несколько способов реализации foreach в javascript Вариант 1:
for (var key in some_array) {
            var val = some_array [key];
	    alert (key+' = '+val);	
}
Источник: http://mihalytch.org.ua/programming/php/analogue-foreach-in-javascript.html Вариант 2:
for(i=0, c=arr.length; i<c; i++) {
	my_func(arr[i]);
}
Нужно отметить, что второй вариант не совсем реализует foreach, так как перебираются только значения массива без ключей.