美文网首页
JavaScript 流程控制

JavaScript 流程控制

作者: 卓三阳 | 来源:发表于2018-10-01 15:31 被阅读5次

https://github.com/anotherso1a/37Hero/blob/master/chain.js

使用原生JS实现一个英雄类Hero, 可以按照以下方式调用(考察点: JavaScript流程控制)
(1) Hero("37FEer")输出:
Hi!This is 37FEer!
(2) Hero("37FEer").kill(1).recover(30)输出:
Hi!This is 37FEer!
Kill 1 bug (注意:数量1个,所以bug是单数);
Recover 30 bloods;
(3) Hero("37FEer").sleep(10).kill(2)输出:
Hi!This is 37FEer!
// 等待10秒..
Kill 2 bugs (注意:数量2个,所以bugs是复数);

function HeroFather(name){
    this.name=name
    this.task=[]
    this.next=function(){
        var fn = this.task.shift()
        if(fn){
            fn()
        }
        return this
    }
    //关键步骤,将next方法执行回调
    var that=this
    setTimeout(function(){
        console.log(`Hi, my name is ${that.name}`)
        that.next()
    })
}

HeroFather.prototype.sleep=function(a){
    var that=this
    var fn = function(){
        var s = a
        console.log(`I need sleep ${s}s`)
        setTimeout(function(){
            that.next()
        },s*1000)
    }
    this.task.push(fn)
    return this
}

HeroFather.prototype.kill=function(a){
    var that = this
    var fn = function(){
        var s = a
        console.log(`I killed ${s} bug${s>1?'s':''}`);
        that.next()
    }
    this.task.push(fn)
    return this
}

HeroFather.prototype.recover=function(a){
    var that = this
    var fn = function(){
        var s = a
        console.log(`I recovered ${s} HP`);
        that.next()
    }
    this.task.push(fn)
    return this
}

function Hero(name){
    return new HeroFather(name)
}

Hero('37FEer')
Hero('37FEer').kill(2).recover(30)
Hero('37FEer').sleep(1).kill(2)

相关文章

  • 前些年javascript&oracle®ex学习记录

    学习 【javascript】模板引擎(JsTemplate) 【javascript】流程控制工具(jsFlow...

  • javascript语言的应用

    JavaScript技术: JavaScript语言:变量,数据类型,流程控制,函数,内置对象(strin,arr...

  • PHP全栈学习笔记4

    php和JavaScript,掌握JavaScript基础,自定义函数,流程控制语句,事件,调用JavaScrip...

  • PHP全栈学习笔记4

    php和JavaScript,掌握JavaScript基础,自定义函数,流程控制语句,事件,调用JavaScrip...

  • Javascript流程控制

    1.条件语句 (1)if(exp)执行一句代码 (2)if(exp){执行代码段;} (3)if(exp){exp...

  • JavaScript 流程控制

    https://github.com/anotherso1a/37Hero/blob/master/chain.j...

  • javascript流程控制

    javascript流程控制 流程:就是程序代码的执行顺序。流程控制:通过规定的语句让程序代码有条件地按照一定的方...

  • JavaScript流程控制

    选择结构if 对给定的条件进行判断,再根据判断结果来决定执行代码 注意点:C语言中的代码块可以用于控制变量的作用域...

  • JavaScript流程控制

    顺序结构 if选择结构 JavaScript中的if选择结构和C语言一样 对于非Boolean类型的值,会先转换为...

  • 流程控制的基本概念

    流程控制是指控制代码的执行顺序。 在JavaScript中,有三种基本的流程控制结构:顺序结构、选择结构和循环结构...

网友评论

      本文标题:JavaScript 流程控制

      本文链接:https://www.haomeiwen.com/subject/aenjoftx.html