天天看点

据说每个大牛、小牛都应该有自己的库——JavaScript原生对象拓展

言归正传要想对JavaScript原生对象进行拓展,首先得了解JavaScript究竟有哪些原生对象,《JavaScript语言精髓与编程实践》上有一张广为流传的图片

据说每个大牛、小牛都应该有自己的库——JavaScript原生对象拓展

内置(Build-in)对象与原生(Naitve)对象的区别在于:前者总是在引擎初始化阶段就被创建好的对象,是后者的一个子集;而后者包括了一些在运行过程中动态创建的对象。宿主对象不是引擎的原生对象,而是由宿主框架通过某种机制注册到JavaScript引擎中的对象。

这么多原生对象,并不是每个都要拓展,只是拓展一下在其它语言中存在的,用起来很方便的方法,至于拓展方式也很简单,无非是向prototype里面注册。

在反复写了很多通用函数后我总是在试图解决使用者可能的疏忽,比如在为某个元素绑定click事件处理程序的时候,我要先判断用户传的元素是否为空,是的话直接返回false;判断click是不是写成了onclick;判断欲绑定的函数是不是个函数。。。,这样的工作确实使库函数更加好使,但带来了几个显著的弊端

1.层层判断,效率低下,相信这点儿不用多说明

2.为了使函数不报错而返回false,自己处理了异常,没有把错误显示返回给用户,难以发现错误及调试

3.纵容了使用的的不良行为

权衡了一下,在自己的库函数中不会帮助使用者处理参数及使用错误,如果出现错误不处理,直接返回给使用者。

但是很多函数并不要求用户传入所有参数,比如jQuery的ajax函数,可以传入部分参数,不传入部分按默认值处理,这是合理的,库函数中也会遵守这一原则。

对String对象的拓展主要有

ltrim:去除string左边空白符

rtrim:去除string右边空白符

trim:去除string首尾空白符

htmlEncode:把html字符串encode成普通字符串

htmlDecode:把字符串decode为html字符串

isStartsWith:判断字符串是否以参数开始

isEndWith:判断字符串是否以参数结束

据说每个大牛、小牛都应该有自己的库——JavaScript原生对象拓展
据说每个大牛、小牛都应该有自己的库——JavaScript原生对象拓展

对Array对象的拓展有

indexOf:返回参数在数组中index,不存在返回-1

据说每个大牛、小牛都应该有自己的库——JavaScript原生对象拓展
据说每个大牛、小牛都应该有自己的库——JavaScript原生对象拓展

Date对象的拓展

format:格式化日期(网上找的,据说是个老外写的,但是找不到作者)

getDaysInMonth:获取某月有多少天

据说每个大牛、小牛都应该有自己的库——JavaScript原生对象拓展

   本文转自魏琼东博客园博客,原文链接:http://www.cnblogs.com/dolphinX/p/3300085.html,如需转载请自行联系原作者

<a></a>

继续阅读