0%

JS核心-(42)-函式以及This的運作-this 練習

前言

this 課後練習

第一題

請問 this 將會出現甚麼答案?

  1. 漂亮阿姨 / Magic Watch
  2. Magic Watch / 漂亮阿姨
  3. 漂亮阿姨 / undefined
  4. Magic Watch / undefined
點我看答案

答案: 1  

第二題

請問 this 將會出現甚麼答案?

  1. 漂亮阿姨 / Magic Watch
  2. Magic Watch / 漂亮阿姨
  3. 漂亮阿姨 / function callName( )
  4. Magic Watch / function callName( )
點我看答案

答案: 3  

第三題

請問 this 將會出現甚麼答案?

  1. 小明
  2. 小美
  3. 小王
  4. undefined
點我看答案

答案: 3  

第四題

請問 this 將會出現甚麼答案?

  1. 小明
  2. 小美
  3. 小王
  4. undefined
點我看答案

答案: 4  

這裡的 this 是指 obj 物件,此物件下並沒有包含 name 的屬性,所以才會是 undefined


第五題

請問 this 將會出現甚麼答案?

  1. 小明
  2. 小美
  3. 小王
  4. undefined
點我看答案

答案: 4  

第六題

請問 this 將會出現甚麼答案?

  1. 小明 / 小王
  2. 小虎 / undefined
  3. 小虎 / 小明
  4. 小虎 / 小王
點我看答案

答案: 3  

第七題

請問 this 將會出現甚麼答案?

  1. 全域阿婆 / undefined,漂亮阿姨 / 小明
  2. undefined / 小明,漂亮阿姨 / 小明
  3. undefined / 小明,全域阿婆 / 小明
  4. 漂亮阿姨 / undefined,全域阿婆 / 小明
點我看答案

答案: 1  

第八題

請問 this 將會出現甚麼答案?

  1. 全域
  2. 漂亮阿姨
  3. undefined
點我看答案

答案: 1  

這邊其實觀念是在於「this 與函式的呼叫方法」有關係,因此這一題是將該函式宣告但卻沒有呼叫直接賦予給變數
var a= auntie.callName;
而實際呼叫是在 a( );
但是如果你是直接呼叫 auntie.callName( ); 那麼答案就會不同。
auntie.callName( ); // 漂亮阿姨
因此 this 主要與你怎麼呼叫有關係,這邊的 a( )為直接呼叫的 simple 函式,因此指向全域的 name


第九題

請問 this 將會出現甚麼答案?

  1. 全域
  2. 漂亮阿姨
  3. undefined
點我看答案

答案: 1  

第十題

請問 this 將會出現甚麼答案?

  1. 小明
  2. 小美
  3. 小王
  4. 小光
  5. 小城
點我看答案

答案: 2