JS: Как конвертировать [object] в string?

  • Автор темы Guest111
  • Дата начала

Guest111

Guest
JS: Как конвертировать [object] в string?

Есть такой код:
Код:
<script language="JavaScript">
//<!--
function printIt ( obj ) {

  var objName = obj + " ";

  document.write ( objName ); // тут все равно остается [object]

}

printIt ( document );

//-->
</script>
хочу передать ОБЪЕКТ и отобразить его название. Передается ИМЕННО объект, т.е. вариант вроде:
printIt ( 'document' );
не пойдет...
 

Profic

just Profic (PHP5 BetaTeam)
[object] это уже string

PHP:
/*
dumps an object obj properties in a new window
*/
function objDump(obj) {
	var dump = window.open(
		'about:blank', 'dumpWindow', 'toolbar=no, location=no, directories=no, status=no, menubar=no,'
			+ 'scrollbars=yes, resizable=yes, copyhistory=no, width=400, height=400'
		);

	var objStr = '<u>exception thrown:</u> ';
	try {
		objStr = String(obj);
	} catch (e) {
		objStr += e.message;
	}
	dump.document.write('<h3>Dumping object: ' + objStr + '</h3>');
	try {
		for (var prop in obj) {
			dump.document.write('<b>' + prop + '</b>: ');
			var propStr = '<u>exception thrown:</u> ';
			try {
				propStr = String(obj[prop]);
			} catch (e) {
				propStr += e.message;
			}
			dump.document.write(propStr + '<br>');
		}
	} catch (e) {
		dump.document.write('<u>exception thrown:</u> ' + e.message);
	}
	document.close();
	return false;
}
 

Guest111

Guest
Profic
спасибо! работает!

хм, а ведь я как раз именно этот скрипт сейчас и пишу... :D ;)

-~{}~ 04.08.05 16:43:

Кстати, а в этом скрипте тоже выводит:
Dumping object: [object]

Можно ли как-то разрешить эту фигню, чтобы при вызове скажем:
objDump ( window );

выводило что-то вроде:
Dumping object: window

т.е. свободно бы выводило название объекта...


Не понял тебя на счет того, что объект это есть строка... поясни плиз, если не сложно, что ты имел ввиду?
Объект это же объект... а строка тут причем....?
 

Profic

just Profic (PHP5 BetaTeam)
Можно ли как-то разрешить эту фигню, чтобы при вызове скажем:
objDump ( window );
выводило что-то вроде:
Dumping object: window
Это классический вопрос и ответ на него "нет". Если так хочеться передавай второй параметр-строку, с тем что хочешь вывести.

Не понял тебя на счет того, что объект это есть строка... поясни плиз, если не сложно, что ты имел ввиду?
Объект это же объект... а строка тут причем....?
"[object]" - это объект уже преобразованный в строку. Кури ман по JS на предмет toString(). Разные реализации это делают по разному. Опера например может отдать HTMLElement.
 
Сверху