|
Javascript this關鍵字一般來說大家并不陌生,但是如何更好的用好Javascript this關鍵字卻需要我們仔細思考,希望本文對廣大程序員有所幫助。
摘要
本系列博文主要談一些在 Javascript 使用中經常會混淆的高級應用,包括: prototype, closure, scope, this關鍵字. 對于一個需要提高自己Javascript水平的程序員,這些都是必須要掌握的.
本節主要介紹this關鍵字和scope.
Contents
摘要引入this關鍵字關于apply和callscope詳述一些說明結論后記參考資料本文的源碼
引入
作為一個程序員, 你可能早已經習慣于面向對象語言中指代當前對象的引用(或者指針), 如的c++中的this或者 Python 中的self,當然具有OO屬性( Javascript 其實更多的是一種所謂的函數式語言)的 Javascript 同樣, 它也具有引用當前屬性的對象的指針(或者引用), 也就是this關鍵字.
為了理解this關鍵字,如果你只想記住一句話,那應該是 this關鍵字總是指向當前函數的所有者對象(執行空間), 至于這句話如何理解, 可以參見下面的詳細說明.
那么什么是 scope 呢?
wikipedia 中的解釋是 In computer programming, scope is an enclosing context where values and expressions are associated. 中文即是所謂的 作用域, 它指明的是一個數值或者表達式所關聯的上下文(能夠被引用的執行空間).
scope 與this有什么關系呢? 如果從上面的定義來看, this指向的總是當前引用此函數的對象,而當你要判斷當前引用的對象時, 這時你就得弄清楚當前函數所在的 scope. 具體可見下面的分析.
Javascript this關鍵字
請看下面的幾個例子.
一個 Python 的例子:
class Person(object):
"""a person class
"""
def __init__(self, name):
self.name = name #這里的self指向的是實例化后的對象,如下面中的zhutao
def get_name(self):
return self.name
zhutao = Person("zhutao")
print zhutao.name
it知識庫:javascript必知必會之this關鍵字及scope,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。