我有这个代码:
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');
该脚本警告 '3 :: object' 3 次和 '4 :: object' 一次。
我知道这是为什么。这是因为new obj('4')
创建了一个具有自己内存空间的新实例,并且之前的调用共享它们的内存空间。在代码中obj
如何确定我是新对象还是函数时,因为typeof _this
只是说“对象”?
谢谢。