javascript 디자인 모델 - 원형 모델

원형 실례로 대상을 만드는 클래스를 가리키며 원형의 방법과 속성을 공유할 수 있습니다.
var LoopImages = function(imgArr,container){
    this.imageArray = imgArr
    this.container = container
}
LoopImages.prototype = {
    createImage : function () {
        console.log('Loop Images create Image function')
    },
    changeImage(){
        console.log('Loop Images change Image function')
    }
}
var SlideLoopImg = function (imgArr,container) {
    LoopImages.call(this,imgArr,container)
}

var FadeLoopImg = function(imgArr,container,arrow){
    LoopImages.call(this,imgArr,container)
    this.arrow = arrow //arrow 
}
SlideLoopImg.prototype = new LoopImages()  //{imageArray,container}    

SlideLoopImg.prototype.changeImage = function(){
    console.log('a')  // 
}

var slide = new SlideLoopImg(['a','b','c'],'div1')
slide.changeImage() //a

원형 계승


하나의 실례 대상을 만드는 구조 함수가 비교적 복잡하거나 여러 개의 대상을 만들어서 실현해야 한다면 이러한 대상의 속성이나 방법을 복제할 수 있다
/*    */
function prototypeExtend(){
    var F = function(){}
    args = arguments;
    for(let i = 0;i<args.length;i++){
        for(let j in args[i]){
            F.prototype[j] = args[i][j]
        }
    }   
    return new F();
}

var penguin = prototypeExtend({
    speed:20, 
    swim:function(){
        console.log(' '+this.speed)
    },
    run:function(speed){
        console.log(' '+speed)
    },
    jump:function(){
        console.log(' ')
    }
},{
    sleep:function(){
        console.log(' ')
    }
})
penguin.swim()
penguin.run(30)
penguin.sleep()

좋은 웹페이지 즐겨찾기