• 原生js面向对象写法


    Mouse就是一个类,有自己的成员变量和成员方法,成员方法一定加上prototype,避免js原型的坑。

    var Mouse = function(id)
    {
    
        this.id = id;
        this.name = "";
        this.mes = null;//被创建的那个div
        this.con = null;
        this.runAwayInterval = null;
    
        this.init();
    };
    
    Mouse.prototype.init = function()
    {
        // console.log("初始化id为 " + this.id + " 的mouse");
        this.show();
    
    }
    
    Mouse.prototype.show = function()
    {
        this.mes = document.createElement("div");
        this.mes.setAttribute("id","mickey");
        this.con = document.getElementById("container");
        this.mes.style.opacity = 1;
        this.con.appendChild(this.mes);
    
        
        this.mes.onclick = function()
        {
            getScore();
            this.con.removeChild(this.mes);
            clearInterval(this.runAwayInterval);
            removeOneMouse(this.id);
        }.bind(this);
        // console.log(this.con.offsetWidth - 100);
        this.mes.style.left = Math.random()*(this.con.offsetWidth - 100).toString()+"px";
        var targetTop = Math.random()*(this.con.offsetHeight - 100) +50;
        this.mes.style.top =targetTop  +"px";
        // this.mes.style.top = 0 +"px";
    
        this.runAwayInterval = setInterval(this.runAway.bind(this),200);
    }
    
    Mouse.prototype.runAway = function()
    {
        // console.log("我是' "+ this.id +" '我正在跑...");
    
        var opa = parseFloat(this.mes.style.opacity);
        opa -= 0.1;
        this.mes.style.opacity = opa;
        if(opa<=0)
        {
           this.lose();
        }
    }
    
    // Mouse.prototype.beCatch = function()
    // {
    //     this.con.removeChild(this.mes);
    //     clearInterval(this.runAwayInterval);
    // }
    
    Mouse.prototype.lose = function()
    {
        // console.log("我是' "+ this.id +" '我成功跳走了...");
        this.con.removeChild(this.mes);
        clearInterval(this.runAwayInterval);
        removeOneMouse(this.id);
        loseScore();
    }
  • 相关阅读:
    HUD——T 3836 Equivalent Sets
    HDU——T 2594 Simpsons’ Hidden Talents
    vertical-align和line-height的深入应用
    November 7th 2016 Week 46th Monday
    November 6th 2016 Week 46th Sunday
    November 5th Week 45th Saturday 2016
    November 4th Week 45th Friday 2016
    【2017-01-08】QTimer与QThread的调度时间精度
    November 3rd Week 45th Thursday 2016
    November 2nd Week 45th Wednesday 2016
  • 原文地址:https://www.cnblogs.com/JD85/p/9069976.html
Copyright © 2020-2023  润新知