javascript設計モード--原型モード


プロトタイプ:プロトタイプのインスタンスで作成対象のクラスを指し、新しいオブジェクトを作成するクラス共有プロトタイプの属性および方法に使用します.
焦点図を作成
//     
var LoopImages = function(imgArr,container){
    this.imageArray = imgArr; //      
    this.container = container; //      
    this.createImage = function(){}; //      
    this.changeImage = function(){}; //        
}

//       
var SlideLoopImg = function(imgArr,container){
    //           
    LoopImages.call(this.imgArr,container);
    //              
    this.changeImage = function(){
        console.log('SlideLoopImage changeImage function');
    }
}

//     
var FadeLoopImg = function(imgArr,container,arrow) {
    LoopImages.call(this,imgArr,container);
    //        
    this.arrow = arrow;
    this.changeImage = function(){
        console.log('FadeLoopImg changeImage function');
    }
}
画像のルーレットを作成するのは簡単です.
var fadeImg = new FadeLoopImg([
    '01.jpg',
    '02.jpg',
    '03.jpg',
    '04.jpg',
],'slide',['left.jpg',right.jpg]
);
fadeImg.changeImage();
プロトタイプモードとは、多重化可能で、共有可能で、時間がかかる場合、ベースクラスから提案され、プロトタイプに置いて、その後、サブクラスは継承または寄生結合式の継承を祝うことによって、方法と属性を継承し、サブクラスにおける書き換えが必要な方法を書き直します.このように作成されたオブジェクトは、サブクラスの属性と方法を持っています.
//     
var LoopImages = function(imgArr,container){
    this.imagesArray = imgArr; //      
    this.container = container; //      
}
LoopImages.prototype = {
    //      
    createImage : function(){
        console.log('LoopImages createImage function');
    },
    changeImage : function(){
        console.log('LoopImages changeImage function');
    } 
}
//       
var SlideLoopImg = function(imgArr,container){
    //           
    LoopImages.call(this,imgArr,container);
}
SlideLoopImg.prototype = new LoopImages();
//              
SlideLoopImg.prototype.change = function(){
    ....
}
プロトタイプパターンから得られた例は、サブクラスの方法と属性だけでなく、親タイプの方法と属性も有する.