将Javascript类重构为模块

时间:2014-09-26 13:46:12

标签: javascript class module

我正在阅读一些javascript书籍并做一些练习,我在执行以下操作时有点卡住: 将影片类重构为模块,保留以前的代码以供参考。

我之前的代码是:

function Movie(){
    this.attributes = {
        title : '',
        duration : '',
        director : '',
        actor : []
    }
}

Movie.prototype.set= function(attr , value){
    this.attributes[attr] = value;
}

Movie.prototype.get = function(){
    console.log(this.attributes.title);
    return this.attributes.title;
}

Movie.prototype.play = function (){
    console.log ('Playing '+this.attributes['title']+'...');
}

Movie.prototype.stop= function(){
    console.log ('Stopped '+this.attributes['title']+'...');
}

我不知道该怎么做才能重构它。我读了很多关于这个,但我不知道怎么用它作为一个类(或者如果那可能),例如现在我可以通过做var titanic = new Movie()创建更多的电影,如果我制作一个模块我不要怎么做。

1 个答案:

答案 0 :(得分:0)

您可以使用这些guides

重构它
var Movie = function () {

  var model = {
    attributes : {
        title : '',
        duration : '',
        director : '',
        actor : []
        }
    };

    model.set = function (attr , value) {
        model.attributes[attr] = value;
    }

    model.get  = function () {
        return model.attributes;
    }

    model.play = function (){
        console.log ('Playing '+this.attributes['title']+'...');
    }

    model.stop= function(){
        console.log ('Stopped '+this.attributes['title']+'...');
    }

    return model;
});

并像这样使用

var movie1 = new Movie();
var movie2 = new Movie();