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樂,請讓我知道最簡單的方法來做到這一點。提前致謝!
謝謝,它工作正常! –