J'ai ce code :
var obj = function (i) {
this.a = i;
this.init = function () {
var _this = this;
setTimeout(function () {
alert(_this.a + ' :: ' + typeof _this);
}, 0);
};
this.init();
};
obj('1');
obj('2');
obj('3');
new obj('4');
Le script signale trois fois '3 : : objet' et une fois '4 : : objet'.
Je sais pourquoi. C'est parce que new obj('4')
crée une nouvelle instance avec son propre espace mémoire et les appels précédents partagent leur espace mémoire. Lorsque dans le code de obj
comment puis-je déterminer si je suis un nouvel objet ou une fonction, puisque typeof _this
dit juste "objet" ?
Merci.