百度web前端的一道笔试题(CarFactory)
2012-10-20 15:59
477 查看
今天参加了百度2013年校园招聘杭州站的笔试,岗位是WEB前端工程师(上海)。有一道题目印象比较深,大概是因为笔者是从Java开始学编程的原因吧,对于面向对象和继承的一些东西特别敏感。
题目大概是这样的: 有一个CarFactory,专门产生一些汽车的对象,汽车类型有Bus, Truck, 和 Jeep, 他们有各自的引擎,分别为BusEngine, TruckEngine 和 JeepEngine,设计这样一个Factory。
一开始觉得挺难,在自己的JavaScript开发过程中也没有写过类似的工厂方法。不过在仔细的思考下,大概还是写出来了。贴上自己的答案,只写了Bus,其它省略了。
学前端才三四个月,因为同学的建议,投了百度。学的东西挺多,精通的太少。这也是我在笔试时能想到的最好的写法了。
题目大概是这样的: 有一个CarFactory,专门产生一些汽车的对象,汽车类型有Bus, Truck, 和 Jeep, 他们有各自的引擎,分别为BusEngine, TruckEngine 和 JeepEngine,设计这样一个Factory。
一开始觉得挺难,在自己的JavaScript开发过程中也没有写过类似的工厂方法。不过在仔细的思考下,大概还是写出来了。贴上自己的答案,只写了Bus,其它省略了。
//所有汽车的父类,每辆车都有一个引擎 var Car = function(engine){ this.engine = engine; }; //引擎的父类构造对象,为它设置了一个引擎的名字,和一个启动的方法(这个在笔试里面没有要求) var Engine = function(engineName){ this.engineName = engineName; }; Engine.prototype.run = function(){ console.log(this.engineName + ' is running'); }; //BusEngine的构造方法 var BusEngine = function(){ Engine.call(this, 'busEngine'); }; BusEngine.prototype = new Engine(); //Bus的构造方法 var Bus = function(){ Car.call(this, new BusEngine()); }; //Car工厂方法 var CarFactory = function(type){ return new type(); } //示例 var oneBus = CarFactory(Bus); oneBus.engine.run();
学前端才三四个月,因为同学的建议,投了百度。学的东西挺多,精通的太少。这也是我在笔试时能想到的最好的写法了。
相关文章推荐
- 记2012年百度web前端研发实习生的笔试面试经历
- 百度web前端--2015笔试
- 百度web前端笔试题
- 百度2013年校园招聘笔试题——WEB前端研发类
- 百度web前端--2015笔试
- 百度2010校园招聘 web前端开发笔试题(大概)
- 今天看到的xx的一道百度前端笔试题
- 百度Web前端笔试和面试
- 关于Web前端及百度web前端笔试面试题目
- 关于Web前端开发,附:(百度web前端笔试面试题目)
- 2012 百度web前端笔试题
- 百度web前端笔试--2015年
- 记2012年百度web前端研发实习生的笔试面试经历
- 2012 腾讯校招Web前端笔试的一道题,很值得怀念。。。
- 2011年百度web前端笔试 大连
- 笔试题,百度流程信息管理部Web前端实习研发工程师
- [web前端笔试] AJAX笔试面试题汇总
- 用javascript对象模拟LRUcache缓存池(百度2014校招前端笔试题)
- 20140920百度笔试题一道之二维矩阵查找
- 百度2014校招一道笔试题