在对象的原型方法中使用依赖是坏的吗?

时间:2014-12-02 02:38:12

标签: javascript

我正在尝试创建一个简单的应用程序,从数据库中检索youtube歌曲数据,并将其显示在列表中。

以下是Track对象的基本内容:

function Track(title, artist, genre, length, videoId) {
  this.title = title;
  this.artist = artist;
  this.genre = genre;
  this.length = length;
  this.videoId = videoId;
}

注意:videoId只是播放器使用的唯一字符串。

现在,我创建了一个带有公共API的模块,可以处理所有youtube播放器功能。如下所示:

var player = (function() {

  function playVideo(videoId) {
    youtubePlayer.playVid(videoId);
  }

  // ... other player functionality ...

  return {
    playVideo: function(videoId) {
       return playVideo(videoId);
    }
  }

})();

(我只是在上面编写youtube的API,我忘记播放视频的实际代码是什么,但它类似于此类)

现在,我想在Track对象中添加一个函数来播放该音轨。当用户点击该曲目的播放按钮时,我将调用此方法。如下所示:

Track.prototype.playVideo = function(player) {
  player.playVideo(this.videoId);
}

基本上,我将我创建的'player'模块传递给prototype方法,然后使用它来使用API​​播放特定Track的视频。

可以这样做,还是被认为是不好的做法?从本质上讲,它在原型属性中创建了对外部模块的依赖。

如果这是不好的做法,那么解决这个问题的更好方法是什么?

感谢您对此的任何见解:)

0 个答案:

没有答案