push()函数undefined

想把连接websocket的ws export出去后在别的地方拿到resList

https://img1.mukewang.com/5bf54bfc00019abf05240548.jpg

https://img3.mukewang.com/5bf54c06000128c304380017.jpg

陪伴而非守候
浏览 788回答 1
1回答

江户川乱折腾

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对象,因为此时调用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()再输出就发现,_this将init()的this带了进来,因为init()由ws调用,所以他的this指向ws,从而_this也指向ws,符合你的要求如果你对this绑定有疑问,可以参考我的博客或者,如果你们使用es6的话,可以使用胖箭头函数:var websocket = {}var ws = {    resList: [],    socket:null,    init: function() {         websocket.onopen = () => {            console.log(this)         }     }, } ws.init() websocket.onopen()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript