第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

push()函數(shù)undefined

push()函數(shù)undefined

陪伴而非守候 2018-10-10 13:15:06
想把連接websocket的ws export出去后在別的地方拿到resList
查看完整描述

1 回答

?
江戶川亂折騰

TA貢獻(xiàn)1851條經(jīng)驗 獲得超5個贊

var websocket = {}var ws = {    resList: [],    socket:null,    init: function() {
        websocket.onopen = function() {            var _this = this
            console.log(_this)
        }
    },
}

ws.init()
websocket.onopen()

在google chrome 的console中cv以上代碼,這是你的代碼簡化版,可以看到輸出的_this指向websock對象,因為此時調(diào)用onopen方法的是websock,符合this的隱式綁定原則;我們把var _this = this 移到init()作用域,就像這樣:

var websocket = {}var ws = {    resList: [],    socket:null,    init: function() {        var _this = this
        websocket.onopen = function() {            console.log(_this)
        }
    },
}

ws.init()
websocket.onopen()

再輸出就發(fā)現(xiàn),_this將init()的this帶了進(jìn)來,因為init()由ws調(diào)用,所以他的this指向ws,從而_this也指向ws,符合你的要求

如果你對this綁定有疑問,可以參考我的博客

或者,如果你們使用es6的話,可以使用胖箭頭函數(shù):

var websocket = {}var ws = {    resList: [],    socket:null,    init: function() {
        websocket.onopen = () => {            console.log(this)
        }
    },
}

ws.init()
websocket.onopen()


查看完整回答
反對 回復(fù) 2018-11-21
  • 1 回答
  • 0 關(guān)注
  • 802 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號