以下是代码:
var player = {};
$(document).ready(function() {
initPlayer();
initControls();
}
function initPlayer() {
player = new MediaElementPlayer('#player', {
loop: false,
features: ['progress','duration','fullscreen'],
success: function (mediaElement, domObject) {
mediaElement.addEventListener('pause', function(e) {
$('#btn-play').find('span').toggleClass("glyphicon-pause").toggleClass("glyphicon-play");
}, false);
mediaElement.addEventListener('play', function(e) {
$('#btn-play').find('span').toggleClass("glyphicon-play").toggleClass("glyphicon-pause");
}, false);
}
});
}
function initControls() {
$('#btn-play').click(function() {
console.log(player.paused);
}
}
我在initPlayer函数之外创建了空的“播放器”对象,因为我想稍后在不同的位置使用它。问题是,我无法访问 initPlayer 函数之外的对象属性。 initControls()中的console.log只会抛出一个未定义的。
当我在initPlayer函数中定义播放器变量(var player = new MediaElementPlayer [...])时,我可以在initControls()函数中读取它的属性。为什么我可以访问本地变量而不是全局变量?