如何解决理解javascript赋值语法的问题
我在 Javascript 中遇到了以下类定义:
class FakeWebSocket {
constructor(url) {
this.url = url;
console.log('connecting to ' + url);
let i = 0;
this.id = setInterval(() => this.triggerMessage(i++),500);
}
close() {
console.log('closing connection to ' + this.url);
clearInterval(this.id);
}
addEventListener(name,handler) {
const listeners = this.listeners = this.listeners || {};
const handlers = listeners[name] = listeners[name] || [];
handlers.push(handler);
}
addEventListener(name,handler) {
const listeners = this.listeners = this.listeners || {};
const handlers = listeners[name] = listeners[name] || [];
handlers.push(handler);
}
triggerMessage(msg) {
const listeners = this.listeners;
if (listeners) {
const handlers = listeners['message'];
handlers.forEach(handler => handler({ target: this,data: JSON.stringify(msg) }))
}
}
}
const source = new Observable((observer) => {
const socket = new FakeWebSocket('ws://someurl');
socket.addEventListener('message',(e) => observer.next(e));
return () => socket.close();
});
我的问题是线路:
const listeners = this.listeners = this.listeners || {};
我将其解释为分配给常量侦听器,您将其分配给它自己或一个新对象。这对我没有任何意义。我不知道 this.listeners 来自哪里以及语法的含义。谁能解释一下?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。