js作用域與上下文
阿新 • • 發佈:2017-08-07
改變 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) } vardog = new Dog(‘wang!‘) dog.speak()
js作用域與上下文