Why do the document.write() and alert() methds render JavaScript objects differently? -


what difference between document.write() method , window.alert() when printing arrays , objects?

the different behaviors shown in code sample:

var arr = new array("maizere","pathak");  document.write(arr); // output: maizere,pathak alert(arr); // output: maizere,pathak 

why both printing values? shouldn't alert() print object object?

with dom object, prints [object html collection] , here printing values.

objects in javascript have tostring method. method called whenever object used in way text expected. instance, following outputs [object object]:

alert({}); 

arrays have own version of tostring method altogether different. rather showing type, show contents, joined commas. can replace arrays tostring method if like:

var names = ['jonathan', 'sampson'];  names.tostring = function () {     return this.length; };  alert(names); // outputs 2 

you can use else's tostring implementation if like:

document.tostring.call(names); // [object array] 

for additional information, see tostring on msdn.


Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -