我有一个JavaScript代码,它使用事件在不同组件之间进行通信。我使用ES6
语法和 webpack 。我也使用babel-polyfill
作为愚蠢的Microsoft IE 11!
我有这样一行(我的timeline_
变量是vis.js Timeline的一个实例:
this.timeline_.on('rangechange', this._handleTimelineMove.bind(this));
在Chrome(和Edge)中,一切正常,但在IE中,bind
功能似乎不起作用。如果我在这一行放置一个断点并使用Watch窗口运行它:
this._handleTimelineMove.bind(this)
它给了我这个:
在Chrome中,它给了我这个:
这是事件发生时需要回调的实际函数。
当我在IE和Chrome中执行typeof
时,两者都回馈"function"
,但我不理解IE的行为!
我也尝试过包含es5-shim
和es6-shim
个套餐,但无济于事。
提前谢谢
事实证明问题出在代码中的其他地方。我在我的代码中创建了一个MouseEvent
,IE不支持(为什么要支持?!),这就是问题的根源,而不是bind
方法。我只是通过纯粹的运气找到了这个问题!