Je me demandais : quelle est la différence entre les objets, les classes et les fonctions JavaScript ? Ai-je raison de penser que les classes et les fonctions sont des types d'objets ?
Et qu'est-ce qui distingue une classe d'une fonction ? Ou bien s'agit-il vraiment de la même chose, le terme changeant simplement en fonction de l'utilisation qui en est faite ?
function func() { alert('foo'); } // a function
func(); // call the function - alerts 'foo'
var func2 = function () { alert('hello'); } // acts the same way as 'func' surely?
func2(); // alerts 'hello'
var Class = function() { alert('bar'); }; // a class
var c = new Class(); // an istance of a class - alerts 'bar'
Bien sûr, les classes ont des méthodes et des propriétés et peuvent être instanciées - mais je pourrais faire de même avec n'importe quelle vieille fonction - ou pas ?