Si je comprends bien, chaque objet en JavaScript hérite du prototype Object, ce qui signifie que chaque objet en JavaScript a accès à la fonction hasOwnProperty via sa chaîne de prototypes.
En lisant RequireJS Je suis tombé sur cette fonction :
function hasProp(obj, prop) {
return hasOwn.call(obj, prop);
}
hasOwn
est une référence à Object.prototype.hasOwnProperty
. Y a-t-il une différence pratique à écrire cette fonction sous forme de
function hasProp(obj, prop) {
return obj.hasOwnProperty(prop);
}
Et puisque nous y sommes, pourquoi définir cette fonction ? S'agit-il seulement d'une question de raccourcis et de mise en cache locale de l'accès aux propriétés pour un (léger) gain de performance, ou est-ce que je rate des cas où hasOwnProperty pourrait être utilisé sur des objets qui n'ont pas cette méthode ?