使用原生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 Hero(name){this.name = name;this.nameDesc = 'Hi! This is ' + this.name + '!';this.kill = function(killNum){this.killNum = killNum;this.bugDesc = 'bug;';if(this.killNum > 1){this.bugDesc = 'bugs;';}this.killNumDesc = 'Kill ' + this.killNum + ' ' + this.bugDesc;return this;};this.recover = function(recoverNum){this.recoverNum = recoverNum;this.recoverNumDesc = 'Recover ' + this.recoverNum + ' bloods;';return this.nameDesc + '\n' + this.killNumDesc + '\n' + this.recoverNumDesc;};this.sleep = function(t){setTimeout(function(){return this;},t*1000)}return this;
}console.log(Hero('37FEer').kill(2).recover(30))

输出如下图:

可惜很明显的是,只有在条件为Hero('37FEer').kill(2).recover(30)才能满足,而且里面的sleep方法不能用setTimeout!理由我就不再多说了。

关键在于不知道这道题输出的形式是什么?是就在函数里console.log()打印呢?还是调用整个函数之后,return的结果。

下面是在函数里打印console.log()输出的实现,下面是改进的地方:

function Hero(name){this.name = name;console.log('Hi! This is ' + this.name + '!');this.kill = function(killNum){this.killNum = killNum;this.bugDesc = killNum === 1 ? 'bug' : 'bugs';console.log(this.killNumDesc = 'Kill ' + this.killNum + ' ' + this.bugDesc);return this;};this.recover = function(recoverNum){this.recoverNum = recoverNum;console.log(this.recoverNumDesc = 'Recover ' + this.recoverNum + ' bloods;');return this;};this.sleep = function(t){//这里千万不能用setTimeoutvar wait = t*1000;var start = new Date().getTime();var end  = start;while(end < start + wait){end = new Date().getTime();}return this;}return this;
}
console.log(Hero('37FEer'))
console.log(Hero('37FEer').kill(2).recover(30))
console.log(Hero('37FEer').sleep(1).kill(2))

如果是在函数里console.log()那么这道题就是这么实现了....

如果读者有更好更全的方法,欢迎评论交流~

三七互娱秋招web前端笔试题编程题(使用原生JS实现一个英雄类Hero, 可以按照以下方式调用正确输出)相关推荐

  1. 三七互娱-游戏运维岗笔试题(无答案)

    (1)简述TCP/IP三次握手和四次挥手过程 (2)磁盘分区空间还充足,但用户无法写入了,简述可能的原因 (3)把列表[1,3,5,7,9]倒序并将元素变为字符类型,请写出多种方法 (4)使用gran ...

  2. 爱奇艺2019秋招Java方向笔试题(B)

    爱奇艺2019秋招Java方向笔试题(B) 1. 已知一个由5个顶点8条边构成的有向图,以下说法正确的是( C ) A. 各顶点的度之和为8 B. 若以邻接表作为存储结构,邻接表中结点个数为16 C. ...

  3. 大疆秋招IBG后端笔试题 2023

    大疆秋招IBG后端笔试题 2023 题型 编程 计算时间差(Leetcode359) 最小偏移量(Leetcode1657) 题型 单选:20道:(不可修改答案好像,我没找到返回上一题的界面) 多选: ...

  4. 也许你需要点实用的-Web前端笔试题

    之前发的一篇博客里没有附上答案,现在有空整理了下发出来,希望能帮助到正在找工作的你,还是那句话:技术只有自己真正理解了才是自己的东西,共勉. Web前端笔试题 Html+css 1.对WEB标准以及w ...

  5. 互联网公司招聘--爱奇艺--互娱产品运营--2016年笔试题

    互联网公司招聘–爱奇艺–互娱产品运营–2016年笔试题 互联网公司招聘–爱奇艺–互娱产品运营–2016年笔试题 互联网公司招聘–爱奇艺–互娱产品运营–2016年笔试题 试列举 3-5 个视频秀场平台 ...

  6. 数据分析真题日刷 | 京东2018秋招数据分析工程师笔试题

    今日真题 京东2018秋招数据分析工程师笔试题(来源:牛客网) 题型 客观题:单选18道,不定项选择12道 主观题:编程2道 完成时间 120分钟 牛客网评估难度系数 3颗星 写到「数据分析真题日刷」 ...

  7. 秋招Android常见笔试题合集--Binrry(冰蕊)

    阅文集团笔试题 单选题 数组初始化 给定如下代码:int x[4]={0};int y[4]={1};数组x和y的值为: {0,0,0,0},{1,0,0,0} 十进制30转换成十六进制数是: 1E ...

  8. 腾讯 2015秋招笔试题 编程题2:九宫格填数

    腾讯 2015秋招笔试题 编程2:九宫格填数 题目 2: 有下图的题解,请用 C/C++ 代码来列出满足下图 0-100 内的所有答案. 配合加减乘除,使得九宫格横竖都等于4. 智力冲浪 数字推理 请 ...

  9. 网易互娱2020校招游戏研发笔试题

    网易互娱游戏研发笔试题 第一题:判断一个数的二进制是否为回文串(AC) 方法一:存成数组之后比较 #include<iostream> #include<algorithm> ...

  10. 美团2023年春招在线前端笔试题回忆版

    提示:题目不一定完全正确,只能说给大家参考会考察哪些知识点. 文章目录 前言 一.单选(计算机基础知识) 二.专项选择 三.编程题 1. 某地有一个火车站如下图所示,小红很好奇火车是怎么驶进驶出的,然 ...

最新文章

  1. DbVisualizer数据库连接工具默认查询结果只显示100条解决方法,dbvis如何展示更多行,如何显示全部数据
  2. 导出滴滴行程单_身穿统一的绿马甲!滴滴货运小哥上线首日即爆单
  3. 数值范围_如何理解PLC对数值运算的定义与处理方式?
  4. java c 基本类型_java 基本数据类型
  5. nginx An attempt was made to access a socket in a way forbidden by its access permissions
  6. 声音均衡器怎么调好听_汽车10段音效最佳设置,手把手教你调节车载音响均衡器...
  7. 有关Monkey命令的两个隐藏选项
  8. 中煤 php面试,中煤总部笔试面试经验
  9. 反向题在测试问卷信效度_[问卷的信度和效度分析]问卷信度和效度分析
  10. 把iPad上的视频推送到大麦盒子去
  11. 思科痛失瑞士电信2.5亿法郎合同
  12. 【定位问题】基于matlab chan算法、fang算法、taylor算法求解目标定位问题【含Matlab源码 2135期】
  13. Manifest.json文档说明
  14. 计算机辅助教学领域的先驱者,探索“三大构成”教学模式发展之路
  15. source 命令解释
  16. 使用R包networkD3绘制炫酷的动态关系网络
  17. git解决The authenticity of host ‘github.com (192.30.255.112)‘ can‘t be established问题
  18. 服务器 SaaS、PaaS、IaaS 区别
  19. SharedPreferences详解(存储、读取及代码)
  20. FreeMarker Thymeleaf - 前端模板引擎

热门文章

  1. 在你的网页集成QQ推广即时聊天
  2. httpclient中警告Encrypted Alert后断开连接问题处理
  3. OSPF--DR与BDR
  4. 食用卵磷脂市场现状及未来发展趋势
  5. NSI50150ADT4G TO-252 ON安森美 150-350mA 50V 4.2W LED驱动器 工业级规格认证
  6. 微软的teredo服务器,win10系统通过teredo连接ipv6的具体教程
  7. 栈(LIFO:后进先出)
  8. 老旧笔记本的WIN10系统安装Win7还是Win8版本声卡驱动?
  9. 坐标旋转变换 公式图解
  10. Excel中如何将一个Excel工作表的数据按一列的关键字拆分成多个工作表