MediaElementPlayer:为什么我不能访问在函数外部创建的对象的属性?

时间:2016-07-15 08:55:54

标签: javascript jquery

以下是代码:

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()函数中读取它的属性。为什么我可以访问本地变量而不是全局变量?

0 个答案:

没有答案