javaScript 中的 this 指向誰

灌入javaScript 中的 this 指向誰,最重要的一條即可 ”它始終指向調用它的對象“ ,所以找到調用this的對象,就知道this到底指向誰了

函數上下文(this是Javascript語言的一個關鍵字,this訪問,是一個object或者undefined,作爲隱式參數被傳遞)
共四種情況:
作爲函數被調用
作爲方法被調用
作爲構造函數被調用
通過apply或call方法被調用
1)作爲函數被調用
函數聲明(function
函數表達式(let a=function(){}
立即調用函數(function(){})()
在嚴格模式下:undefined(this無作用)
非 嚴格模式  :全局對象(副作用)
2)作爲方法被調用:(放一個對象的屬性的值是函數時,稱作是一個方法被調用)
則this是該對象(被調用時所在的obj)
**很重要的一點就是,誰調用,指向誰
3)作爲構造函數被調用
(構造函數的作用:更加方便的創建多個具有共性的object)
let fun = function (){
    this.whoA = () => {
        return this
    }
}
let pa = new fun()
if (pa.whoA() == pa) {
    console.log('dssssssssssssss')
}
**如果沒有new,則會表現出‘作爲函數被調用’
**所以 new非常重要!!!!!!!!!!
*new 會創建一個新對象,函數上下文是該對象,將屬性添加到新對象中,然後將函數上下文返回值
4)通過apply或call方法被調用
##直接設置上下文
baba.sayhello.call(son,a,b,c)
baba.sayhello.aplay(son,[a,b,c])
//第一個參數爲函數調用的上下文
**技巧,apply,array

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章