js中創建對象時,工廠方式與構造函數方式中this的區別

上代碼:

name="www";
function createClass()
{
alert(this == window);
this.name="ad";


return this;
}
var o=createClass();
alert("----o----"+o.name);

//執行結果:
———圖片不知何故看不到了———————–

var obj=new createClass();//此時,createClass函數作爲構造函數,this指向obj對象(新創建的對象);
alert("----obj----"+obj.name);

//執行結果:
———圖片不知何故看不到了———————–

可以看出,使用工廠方式創建對象(返回this)時,this指向全局對象window,即此時返回的是對window對象的一個引用,其實並未創建任何對象;而通過構造函數new出一個對象的過程中,創建了一個新對象,此時,構造函數中的this指向新創建的對象。

———第一寫博客,可能錯誤百出,請盆友們多多指教。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章