1. 程式人生 > >JS面向物件——列印正方形、圓形

JS面向物件——列印正方形、圓形

描述:

JS面向物件——列印正方形、圓形

效果:

程式碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    /*
    *
    *   class
    *   constructor
    *   extends
    *   super();
    *   super.方法
    *   static 方法
    *
    *
    * */

    //類名
    class Box{
//            建構函式
        constructor(_parent,_wh,_color){
            this.wh=_wh;
            this.color=_color;
            this.boxElem=this.createBox(_parent);
        }
        createBox(_parent){
            if(this.boxElem)return;
            let div=document.createElement("div");
            div.style.width=div.style.height=this.wh+"px";
            div.style.backgroundColor=this.color;
            div.style.position="absolute";
            _parent.appendChild(div);
            return div;
        }
        move(x,y){
            this.boxElem.style.left=x+"px";
            this.boxElem.style.top=y+"px";
        }
    }


    class Ball extends Box{
        constructor(_parent,_wh,_color){
//                super()就是執行繼承的父類的建構函式
            super(_parent,_wh,_color)
        }
        createBox(_parent){//相當於重寫 加了相應的功能 圓的功能
            let elem=super.createBox(_parent);
            elem.style.borderRadius=this.wh/2+"px";
            return elem;
        }
//        類的靜態方法
        static getRandomColor(){
            let col="#";
            for(let i=0;i<6;i++){
                col+=Math.floor(Math.random()*16);
            }
            return col;
        }
    }

    let box1=new Box(document.body,50,"red");
    box1.move(200,200);
    let ball1=new Ball(document.body,50);
    ball1.move(500,500);

    Ball.getRandomColor();
</script>
</body>
</html>