Comment se fait-il Object.prototype.toString === toString
? Si je présente dans la portée globale:JavaScript: toString
var toStringValue = toString.call("foobaz");
Je me attends toStringValue
être la valeur de window.toString
parce window
est la portée par défaut, non? Comment se fait-il que toString
se résout à Object.prototype.toString
au lieu de window.toString
?
Est-ce la raison pour laquelle les frameworks ont tendance à mettre en cache 'Object.prototype.toString' localement? – Jeremy
@Jeremy: Non, ils le font juste pour sauvegarder le chercher tout le temps ('Object.prototype.toString' est deux recherches de propriétés et potentiellement un tas de traversées/recherches de portée); saisir la valeur d'un local peut être beaucoup plus rapide et plus concis). Ils veulent une référence pratique car 'Object.prototype.toString' est l'un des moyens de comprendre ce qu'est un objet. Détails: http://blog.niftysnippets.org/2010/09/say-what.html –