JS面向对象——打印正方形、圆形

127 篇文章 2 订阅
111 篇文章 1 订阅

描述:

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>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值