Supposons que j'ai une simple fonction définie qui ne fait rien: function fn() { }
Javascript toString bizarrerie
Maintenant, quand je lance toString(fn)
je reçois "[object Object]". Quand je cours toString.call(fn)
j'obtiens "[fonction d'objet]". Est-ce que quelqu'un sait pourquoi je reçois un type plus spécifique lors de l'utilisation de la méthode call
?
EDIT: Ce comportement est affiché dans FireFox exécuté via la console FireBug. Les deux toString.constructor
et toString.call.constructor
donnent "Function()".
Détails s'il vous plaît. Appelez-vous cela dans un interpréteur JavaScript? Laquelle? Rhinocéros? jrunscript? quelle version? –
Fait intéressant, autant que je sache, toString est une méthode définie sur le prototype d'objet, et non une fonction intégrée. Donc, la question est de savoir à qui vous appelez toString, et quel argument reçoit-il? –
J'ai exécuté ce code via la console Firebug 1.4.5. La raison pour laquelle j'ai été curieux est que j'ai vu toString.call utilisé comme ça dans le code source de jQuery et j'ai commencé à expérimenter. J'ai couru le code EXACTEMENT comme il est montré dans la question (donc non "someobject.toString"). –