职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 1781|回复: 2

Array.prototype.func()比func(ArrayInstance)好?

[复制链接]
紫露凝香 发表于 2012-2-7 09:39 | 显示全部楼层 |阅读模式
曾经有人问我,为什么使用Array.prototype.func()比func(ArrayInstance)好?我只是简单回答因为Array.prototype.func()应用了面向对象的思想,能易于人们理解。我刚开始接触JavaScript的时候,很喜欢写func(param)这样的函数,虽然我知道JavaScript里有对象的概念,但不明白为什么要那么麻烦把函数写成方法呢?后来我仔细想了这个问题,觉得使用prototype能让我们少做很多事情。

作为一个程序员,我们需要对自己写的代码负责,我们写出的每一个函数都是要给别人使用的,每个人对于函数的理解及使用方式都是不同的,因此我们需要考虑到用户的不同使用方式,如函数中带参数我们就要考虑使用此函数的人会传什么样的参数,并对不同参数应该做什么进行处理,而不是只管理想的情况。

而JavaScript相对于Java、C++等语言来说,给了我们很多自由,如弱类型、类型自动转换、函数参数随意传递等,但这些在给我们自由的同时,也需要我们做更多的事,比如说判断参数类型等。

因此,如果我们写func(param)的时候,我们就要对用户传入参数作判断工作,考虑如用户不传参数、用户传过多参数等情况,这对于我们来说需要花一定的精力和时间,而对于程序来说在运行时也要作很多判断工作。

假如我们把函数变成某个对象的方法,这样我们就能少做很多以上提到的一些不必要的工作,而把更多时间花在别的更重要的地方。

因此我得出一个结论是,尽量将函数都换成对象的方法,面向对象思想对于JavaScript来说非常重要。

http://www.91bdqn.com
我是谁 发表于 2012-3-24 23:56 | 显示全部楼层
学习了.............
我是谁 发表于 2012-3-24 23:56 | 显示全部楼层
学习了.............
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-26 08:42 , Processed in 0.118939 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表