使用 Underscore 时无法在侦听器上获取 videojs _.bind
Can't get videojs on listener when using Underscore _.bind
这就是我让它工作的方式,但我不喜欢它的外观。我真的很想使用 _.bind
让它工作
displayVideo: function displayVideo() {
let _this = this;
this.videoJs = videojs('player', {}, function () {
this.on('play', _this.onPlayerPlayButton);
this.on('pause', _this.onPlayerPauseButton);
});
},
.on 事件侦听器在我这样写的时候没有工作
displayVideo: function displayVideo() {
this.videoJs = videojs('player', {}, _.bind(function () {
this.on('play', this.onPlayerPlayButton);
this.on('pause', this.onPlayerPauseButton);
}, this));
},
这是下划线库中的示例。
var func = function(greeting){ return greeting + ': ' + this.name };
func = _.bind(func, {name: 'moe'}, 'hi');
func();
此示例正在运行。该函数被绑定到这个(你的对象的 displayVideo 方法的调用者)
在 underscore http://underscorejs.org/ 页面中的 underscore 页面尝试这个示例,看看它是如何工作的。
它将调用 func 函数并说 'Hi' 这个名字的参数,这是你的 _.bind 下划线函数的第二个参数,对象 {name: 'Moe'}
这就是我让它工作的方式,但我不喜欢它的外观。我真的很想使用 _.bind
让它工作displayVideo: function displayVideo() {
let _this = this;
this.videoJs = videojs('player', {}, function () {
this.on('play', _this.onPlayerPlayButton);
this.on('pause', _this.onPlayerPauseButton);
});
},
.on 事件侦听器在我这样写的时候没有工作
displayVideo: function displayVideo() {
this.videoJs = videojs('player', {}, _.bind(function () {
this.on('play', this.onPlayerPlayButton);
this.on('pause', this.onPlayerPauseButton);
}, this));
},
这是下划线库中的示例。
var func = function(greeting){ return greeting + ': ' + this.name };
func = _.bind(func, {name: 'moe'}, 'hi');
func();
此示例正在运行。该函数被绑定到这个(你的对象的 displayVideo 方法的调用者)
在 underscore http://underscorejs.org/ 页面中的 underscore 页面尝试这个示例,看看它是如何工作的。
它将调用 func 函数并说 'Hi' 这个名字的参数,这是你的 _.bind 下划线函数的第二个参数,对象 {name: 'Moe'}