js面試---this(1)

function a(xx){

? ? ?this.x = xx;

? ? ?return this;

};

var x = a(5);

var y = a(6);

console.log(x.x);

console.log(y.x);

? ? ? ? 在這里console.log(x.x);輸出undefined,console.log(y.x);輸出6。分析如下:

? ? ? ? 這個函數通過參數給調用者的x屬性賦值,a(5)運行相當于window調用的,this.x相當于聲明了一個全局變量x。因為this在這里代表了window,在y=a(6)調用的之后,給this.x這個全局變量賦值為了6,6是一個數值,所以x.x就相當于6.x,所以是undefined。而y=a(6),所以y的值是return返回的this,即window,所以y.x是6。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 單例模式 適用場景:可能會在場景中使用到對象,但只有一個實例,加載時并不主動創建,需要時才創建 最常見的單例模式,...
    Obeing閱讀 2,103評論 1 10
  • 工廠模式類似于現實生活中的工廠可以產生大量相似的商品,去做同樣的事情,實現同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 7,842評論 2 17
  • 1.什么是閉包?舉例說明從作用域鏈談閉包閉包就是能夠讀取其他函數內部變量的函數,閉包實現累加效果 function...
    大佬_娜閱讀 571評論 0 0
  • 每天堅持寫作輸出26篇文章: 有一篇文章被轉載超級驚喜,其他文章雖然閱讀量也不高,但是發展自己居然堅持了那么多天,...
    重疊人生閱讀 158評論 0 1