我有这样的代码:JavaScript是对象或函数
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 ::对象' 三次, '4 ::对象' 一次。
我知道这是为什么。这是因为new obj('4')
用它自己的内存空间创建了一个新实例,并且之前的调用共享了它们的内存空间。在obj
的代码中,如何确定我是新对象还是函数,因为typeof _this
只是说'对象'?
谢谢。
YES。谢谢,正是我需要的。 –
这个方法不是要求你知道函数的内部调用什么上下文吗? –
@sam不知道我明白。 if语句确定上下文。 –