Prototype Number对象 学习


Posted in Javascript onJuly 19, 2009
Object.extend(Number.prototype, (function() { //返回十六进制颜色之     
function toColorPart() { 
return this.toPaddedString(2, 16); 
} 
//返回连续的下一个数值 
function succ() { 
return this + 1; 
} 
//连续执行某个操作 
function times(iterator, context) { 
$R(0, this, true).each(iterator, context); 
return this; 
} 
//返回固定长度的字符串,前面补0 
function toPaddedString(length, radix) { 
var string = this.toString(radix || 10); 
return '0'.times(length - string.length) + string; 
} 
function toJSON() { 
return isFinite(this) ? this.toString() : 'null'; 
} 
function abs() { 
return Math.abs(this); 
} 
function round() { 
return Math.round(this); 
} 
function ceil() { 
return Math.ceil(this); 
} 
function floor() { 
return Math.floor(this); 
} 
return { 
toColorPart: toColorPart, 
succ: succ, 
times: times, 
toPaddedString: toPaddedString, 
toJSON: toJSON, 
abs: abs, 
round: round, 
ceil: ceil, 
floor: floor 
}; 
})());

这里简单介绍几个prototype扩展的方法。
times方法:
看一下示例
var s = ''; 
(5).times(function(n) { s += n; }); alert(s); 
// -> '01234' 
//函数原型:times(iterator) -> Number,基本就是连续执行N次iterator方法,并且传给iterator的第一个参数为0~N-1 
/* 
这里注意一下调用方法时的写法:5要加上括号,否则直接写5.times,语法会有错误。因为5后面的点会被当成小数点解析,而小数点后面跟字符串会有语法错误。 
还可以有令一种写法:5['times'](function(n) { s += n; }); 
其实这里的5和Number的关系就相当于C#里面int和Integer个关系差不多 
*/

toJSON方法:

这个方法里面的isFinite(number)是JavaScript提供的全局方法:

假如 number 不是 NaN 、负无穷或正无穷,那么 isFinite 方法将返回 true 。 假如是这三种情况,函数返回 false 。

剩下方法就不多解释了,太简单了,给几个示例看看就完了:

(5).succ() 
// -> 6 
$A($R(1, 5)).join('') 
// -> '12345' (128).toColorPart() 
// -> '80' 
(10).toColorPart() 
// -> '0a' 
(13).toPaddedString(4); // -> '0013' 
(13).toPaddedString(2); // -> '13' 
(13).toPaddedString(1); // -> '13' 
(13).toPaddedString(4, 16) // -> '000d' 
(13).toPaddedString(4, 2); // -> '1101'

Javascript 相关文章推荐
一些常用的JS功能函数代码
Jun 23 Javascript
动态载入/删除/更新外部 JavaScript/Css 文件的代码
Jul 03 Javascript
JavaScript中的property和attribute介绍
Dec 26 Javascript
js和jquery中循环的退出和继续下一个循环
Sep 03 Javascript
javascript判断css3动画结束 css3动画结束的回调函数
Mar 10 Javascript
学习使用AngularJS文件上传控件
Feb 16 Javascript
jQuery中ajax获取数据赋值给页面的实例
Dec 31 jQuery
Vue官网todoMVC示例代码
Jan 29 Javascript
浅谈vuejs实现数据驱动视图原理
Feb 23 Javascript
Vue项目中如何引入icon图标
Mar 28 Javascript
js实现二级菜单点击显示当前内容效果
Apr 28 Javascript
vue-cli 默认路由再子路由选中下的选中状态问题及解决代码
Sep 06 Javascript
Prototype ObjectRange对象学习
Jul 19 #Javascript
Prototype RegExp对象 学习
Jul 19 #Javascript
Prototype Class对象学习
Jul 19 #Javascript
javascript iframe内的函数调用实现方法
Jul 19 #Javascript
9个javascript语法高亮插件 推荐
Jul 18 #Javascript
Google Map Api和GOOGLE Search Api整合实现代码
Jul 18 #Javascript
比较简单的异步加载JS文件的代码
Jul 18 #Javascript
You might like
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
2012/07/16 PHP
PHP中for循环与foreach的区别
2017/03/06 PHP
Javascript 复制数组实现代码
2009/11/26 Javascript
JavaScript编程中布尔对象的基本使用
2015/10/25 Javascript
JS从数组中随机取出几个数组元素的方法
2016/08/02 Javascript
javascript数组遍历的方法实例分析
2016/09/13 Javascript
Vue.js上传图片到阿里云OSS存储的方法示例
2018/12/13 Javascript
layer.open的自适应及居中及子页面标题的修改方法
2019/09/05 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
Vue3+elementui plus创建项目的方法
2020/12/01 Vue.js
Python时区设置方法与pytz查询时区教程
2013/11/27 Python
python套接字流重定向实例汇总
2016/03/03 Python
python 与GO中操作slice,list的方式实例代码
2017/03/20 Python
Python数据可视化正态分布简单分析及实现代码
2017/12/04 Python
Python无损音乐搜索引擎实现代码
2018/02/02 Python
Python使用装饰器进行django开发实例代码
2018/02/06 Python
python中的插值 scipy-interp的实现代码
2018/07/23 Python
python try except 捕获所有异常的实例
2018/10/18 Python
python处理DICOM并计算三维模型体积
2019/02/26 Python
Python使用百度api做人脸对比的方法
2019/08/28 Python
解决python 读取excel时 日期变成数字并加.0的问题
2019/10/08 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
python实现数字炸弹游戏
2020/07/17 Python
Pyside2中嵌入Matplotlib的绘图的实现
2021/02/22 Python
Html5之svg可缩放矢量图形_动力节点Java学院整理
2017/07/17 HTML / CSS
美国婚戒购物网站:Anjays Designs
2017/06/28 全球购物
开发中都用到了那些设计模式?用在什么场合?
2014/08/21 面试题
一套比较完整的软件测试人员面试题
2012/05/13 面试题
物流毕业生个人的自我评价
2014/02/13 职场文书
幼儿园教师教育感言
2014/02/28 职场文书
《云房子》教学反思
2014/04/20 职场文书
优秀家长自荐材料
2014/08/26 职场文书
公务员政审材料范文
2014/12/23 职场文书
2015年体育部工作总结
2015/04/02 职场文书
给原生html中添加水印遮罩层的实现示例
2021/04/02 Javascript
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
2021/11/11 HTML / CSS