文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
其他多用途代码
当调试JavaScript代码时,程序员经常使用alert()来弹出消息框,把一些信息显示给他们看,这是Web版本的“printf()调试”。例如,下面函数调用会用Ajax把数据提交给服务器,然后显示从服务器返回的字典。
这段代码的高层次目标是“对服务器做Ajax调用,然后处理响应结果”。但是有很多代码都在处理不相关的子问题,也就是美化字典的输出。把这段代码抽取到一个像format_pretty(obj)这样的函数中很简单:
意料之外的好处
出于很多理由,抽取出format_pretty()是个好主意。它使得用代码更简单,并且format_petty()是一个很方便的函数。
但是还有一个不那么明显的重要理由:当format_pretty()中的代码自成一体后改进它变得更容易。当你在使用一个独立的小函数时,感觉添加功能、改进可读性、处理边界情况等都更容易。
下面是format_pretty(obj)无法处理的一些情况。
·它期望obj是一个对象。如果它是个普通字符串(或者undefined),那么当前的代码会抛出异常。
·它期望obj的每个值都是简单类型。否则如果它包含嵌套对象的话,当前代码会把它们显示成[object Object],这并不是很漂亮。
在我们把format_pretty()拆分成自己的函数之前,感觉要做这些改进可能会需要大量的工作。(实际上,迭代地输出嵌套对象在没有独立的函数时是很难的。)
但是现在增加这些功能就很简单了。改进后的代码如下:
上面的代码把前面提到的不足都改正了,产生的输出如下:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论