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 相关文章推荐
动态修改DOM 里面的 id 属性的弊端分析
Sep 03 Javascript
映彩衣的js随笔(js图片切换效果)
Jul 31 Javascript
onbeforeunload与onunload事件异同点总结
Jun 24 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
Jan 26 Javascript
点击弹出层效果&弹出窗口后网页背景变暗效果的实现代码
Feb 10 Javascript
JS利用cookie记忆当前位置的防刷新导航效果
Oct 15 Javascript
JS中对象与字符串的互相转换详解
May 20 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
Aug 14 Javascript
微信小程序 数据绑定及运算的简单实例
Sep 20 Javascript
layDate日期控件使用方法详解
Nov 15 Javascript
node.js学习笔记之koa框架和简单爬虫练习
Dec 13 Javascript
vue的$http的get请求要加上params操作
Nov 12 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中$this->含义分析
2009/11/29 PHP
php生成excel列名超过26列大于Z时的解决方法
2014/12/29 PHP
php简单备份与还原MySql的方法
2016/05/09 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
PHP使用两个栈实现队列功能的方法
2018/01/15 PHP
javascript中clone对象详解
2014/12/03 Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
2014/12/08 Javascript
JS实现为表格动态添加标题的方法
2015/03/31 Javascript
js实现Select列表内容自动滚动效果代码
2015/08/20 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
2017/08/07 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
js实现下拉框二级联动
2018/12/04 Javascript
Vue 解决通过this.$refs来获取DOM或者组件报错问题
2020/07/28 Javascript
微信小程序实现电影App导航和轮播
2020/11/30 Javascript
Python运行的17个时新手常见错误小结
2012/08/07 Python
python字符串编码识别模块chardet简单应用
2015/06/15 Python
深入理解Python中变量赋值的问题
2017/01/12 Python
python+ffmpeg视频并发直播压力测试
2018/03/06 Python
python读文件保存到字典,修改字典并写入新文件的实例
2018/04/23 Python
Python 炫技操作之合并字典的七种方法
2020/04/10 Python
opencv 图像轮廓的实现示例
2020/07/08 Python
Python类的继承super相关原理解析
2020/10/22 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
基于HTML5+CSS3实现简单的时钟效果
2017/09/11 HTML / CSS
Missguided美国官网:英国时尚品牌
2018/01/18 全球购物
如何获取某个日期是当月的最后一天
2013/12/05 面试题
大专生自荐信
2013/10/04 职场文书
抄作业检讨书
2014/02/17 职场文书
运动会入场式解说词
2014/02/18 职场文书
课程改革实施方案
2014/03/16 职场文书
教师一帮一活动总结
2014/07/08 职场文书
开学第一周日记(三篇范文)
2019/08/23 职场文书
go语言中http超时引发的事故解决
2021/06/02 Golang
Kubernetes关键组件与结构组成介绍
2022/03/31 Servers
《宝可梦》动画制作25周年到来 官方发布特别纪念视频
2022/04/01 日漫