[Javascript] this 的值如何被指定




在 Javascript 裡面,函式通常會有四種不同的呼叫方式:
1. The Method Invocation Pattern
2. The Function Invocation Pattern
3. The Constructor Invocation Pattern
4. The Apply Invocation Pattern

說明如下:
* 在 Method Invocation Pattern 裡面, this 會指到呼叫方法的物件。

  • 在 Function Invocation Pattern 裡面, this 會指到 global 物件。如果是物件的方法裡面的 nested 的 function,內部的 function 的 this 變數還是會指到 global 物件,所以有可能會出錯。

  • 在 Constructor Invocation Pattern 裡面,當你使用 new 來建立一個新的物件時,this 會指到新建立的 object,而 __proto__ 會指到 Constructor 函式的 prototype 。這個很直觀,所以不用舉例。

  • 使用 Apply Invocation Pattern 時,第一個參數會指定給 this 變數。

參考資料:

  • Javascript: The Good Parts (by Douglas Crockford)




Be the first to comment

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.