我有這樣的代碼: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語句確定上下文。 –