0
我正在开发一个web应用程序,我需要播放音频文件。在这种情况下,我试图创建一个对象,将合并音频对象属性,方法和事件与一些自定义方法。javascript传递变量和范围
我有以下对象创建:
<script type="text/javascript">
var AUDIO = {
track: false,
init: function(audioElement, fn) {
var _this = this;
_this.track = document.getElementById(audioElement) || false;
if (!window.HTMLAudioElement) {
alert(HELPER.translate('audio-load-error'));
_this.track = false;
}
else {
AUDIO.track.onloadedmetadata = (function() {
_this.callback(fn);
})();
}
return _this.track;
},
on: function(eventName,fn) {
var _this = this;
var listener = function(event) {
_this.track.removeEventListener(eventName, listener, false);
}
_this.track.addEventListener(eventName, listener, false);
},
callback: function(fn) {
if (typeof fn == 'function') fn.call(this);
if (typeof fn == 'object') $.execCallback(fn);
}
}
</script>
好了,现在我把我的方法是这样的:
<script type="text/javascript">
AUDIO.init('audio-course', function(){
console.log(AUDIO.track);
});
</script>
我想是可能通过AUDIO.track作为通过AUDIO.init(返回的变量),所以我可以用这样的事情?:
<script type="text/javascript">
AUDIO.init('audio-course', function(returnedAudioObject){
console.log(returnedAudioObject.duration);
});
</script>
如果这是possib乐,请让我知道最简单的方法来做到这一点。提前致谢!
谢谢,它工作正常! –