1. 程式人生 > >js作用域與上下文

js作用域與上下文

改變 mic 能力 class bsp 函數 上下 code 訪問

作用域:與調用函數,訪問變量的能力有關 作用域分為:局部和全局(在局部作用域裏可以訪問到全局作用域的變量,但在局部作用域外面就訪問不到局部作用裏面所設定的變量)

上下文:與this關鍵字有關 是調用當前可執行代碼的引用
this總是指向調用這個的方法的對象
js裏的this 通常是當前函數的擁有者
this 是js的一個關鍵字 代表函數運行時自動生成的一個內部對象 只能在函數內部使用

1.作為對象的方法
this在方法內部,this就指向調用這個方法的對象
2.函數的調用
this指向執行環境中的全局對象(瀏覽器->window nodejs->global)
3.構造函數
this所在的方法被實例對象所調用,那麽this就指向這個實例對象

更改上下文方法(更改this指向的內容,可方便地實現繼承):
call(list);
apply(array);
根據call()、apply()改變上下文this指向的特性,也可以方便實現繼承

function Pet(words){
    this.words = words
    this.speak = function(){
        console.log(this.words)
    }
}

function Dog(words){
    Pet.call(this, words)
    // Pet.apply(this, arguments)
}

var
dog = new Dog(‘wang!‘) dog.speak()

js作用域與上下文