今天学习 javascript的设计模式里的 适配器模式 里面讲到了一个例子就是模拟 prototype框架里的 元素选择器 $方法 老师给出的模拟代码如下
var eles = [];
for(var i = 0 ; i <arguments.length;i++){ var element = arguments[i]; if(typeof element === 'string'){ element = document.getElementById(element); } if(arguments.length ==1){ return element; } eles.push(element); }
return eles
可是我觉得这个工功能完全可以一句话简单就能实现 我的代码如下
var eles = []; for(var i = 0 ; i <arguments.length;i++){ eles.push(document.getElementById(arguments[i])) } return eles;
请问各位高手这两种写法有什么区别吗 利与弊又什么!
你老师的方法对arguments的数据做了保护,即使有不符合要求的数据传入,也能保证代码的正常执行。我们写代码不能只想着所有操作都正常进行,要多考虑异常