小编Lar*_*man的帖子

在 Safari 中扩展本机 (es6) 类的问题

我在WebSocket使用 es6 类扩展本机类时遇到问题。

以下代码适用于 Chrome 和 Firefox,但不适用于 Safari:

class MyWebSocket extends WebSocket {
    doSomething() {
        console.log('hi');
    }
}

let ws = new MyWebSocket('wss://127.0.0.1:4000');
ws.doSomething();
Run Code Online (Sandbox Code Playgroud)

类型错误:ws.doSomething 不是函数。(在 'ws.doSomething()' 中,'ws.doSomething' 未定义)

console.log('MyWebSocket.prototype')让我看到该功能已添加到原型中。其他一些内置类会发生这种情况,Animation它们是一个,但不会发生在其他类中Date,例如。

有没有人遇到过这个?这是 Safari 中的错误吗?任何建议表示赞赏!

javascript safari prototype ecmascript-6 es6-class

9
推荐指数
1
解决办法
610
查看次数

标签 统计

ecmascript-6 ×1

es6-class ×1

javascript ×1

prototype ×1

safari ×1