2012-05-24 143 views
4

與其他語言不同,在JavaScript中this始終指向我們正在執行的函數的「所有者」,或者更確切地說,是指函數是方法的對象的。Javascript中'this'關鍵字的用途

這種行爲與其他語言的優勢/目的是什麼?

回答

3

由於您可以設置'this',因此您可以設置您調用的任何函數的範圍,從而使您可以使用函數閉包執行一些有趣的事情。這是大多數JS框架允許您更自然地進行面向對象的類行爲的方式。當你有事件監聽器並且想要設置監聽函數的作用域時,這是特別有用的。

0
  • 默認情況下,這是指全局對象。
  • 當一個函數作爲父對象的屬性被調用時,它引用該函數內的父對象。
  • 當使用new運算符調用某個函數時,它將引用該函數內新創建的對象。
  • 當使用call或apply調用某個函數時,這指的是傳遞給call或apply的第一個參數。如果第一個參數爲null或不是對象,則它指向全局對象。

http://unschooled.org/2012/03/understanding-javascript-this/

採取還應考慮這一點。

http://javascriptplayground.com/blog/2012/04/javascript-variable-scope-this