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 相关文章推荐
javascript入门·动态的时钟,显示完整的一些方法,新年倒计时
Oct 01 Javascript
CSS JavaScript 实现菜单功能 改进版
Dec 09 Javascript
实现超用户体验 table排序javascript实现代码
Jun 22 Javascript
javascript 隔行换色函数代码
Oct 24 Javascript
javascript获取鼠标点击元素对象(示例代码)
Dec 20 Javascript
js实现从数组里随机获取元素
Jan 12 Javascript
微信小程序 开发之快递查询功能的实现
Jan 09 Javascript
vue-loader教程介绍
Jun 14 Javascript
基于构造函数的五种继承方法小结
Jul 27 Javascript
用vue写一个仿简书的轮播图的示例代码
Mar 13 Javascript
vue 使用原生组件上传图片的实例
Sep 08 Javascript
JavaScript 实现轮播图特效的示例
Nov 05 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 自定义错误处理函数的使用详解
2013/05/10 PHP
php截取字符串之截取utf8或gbk编码的中英文字符串示例
2014/03/12 PHP
php将字符串全部转换成大写或者小写的方法
2015/03/17 PHP
PHP预定义超全局数组变量小结
2018/08/20 PHP
jquery插件之easing 动态菜单
2010/08/21 Javascript
一行代码实现纯数据json对象的深度克隆实现思路
2013/01/09 Javascript
javascript格式化json显示实例分析
2015/04/21 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
Mac下使用charles遇到的问题以及解决办法
2017/01/10 Javascript
windows 下安装nodejs 环境变量设置
2017/02/02 NodeJs
vue调用高德地图实例代码
2017/04/28 Javascript
Vue的Class与Style绑定的方法
2017/09/01 Javascript
解决easyui日期时间框ie的兼容的问题
2018/03/01 Javascript
JS中实现一个下载进度条及播放进度条的代码
2019/06/10 Javascript
[02:36]DOTA2英雄基础教程 帕格纳
2014/01/20 DOTA
[03:48]显微镜下的DOTA2第四期——TP动作
2014/06/20 DOTA
python登录QQ邮箱发信的实现代码
2013/02/10 Python
【Python】Python的urllib模块、urllib2模块批量进行网页下载文件
2016/11/19 Python
Python面向对象class类属性及子类用法分析
2018/02/02 Python
详解django.contirb.auth-认证
2018/07/16 Python
python调用百度语音识别实现大音频文件语音识别功能
2018/08/30 Python
浅析python的优势和不足之处
2018/11/20 Python
python实现基于朴素贝叶斯的垃圾分类算法
2019/07/09 Python
Python 控制终端输出文字的实例
2019/07/12 Python
python tkinter实现彩球碰撞屏保
2019/07/30 Python
关于Python字符串显示u...的解决方式
2020/03/06 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
2020/05/16 Python
CSS3 Columns分列式布局方法简介
2014/05/03 HTML / CSS
学生请假条
2014/04/11 职场文书
关于保护环境的标语
2014/06/09 职场文书
2014年组织委员工作总结
2014/12/01 职场文书
离婚协议书范本
2015/01/26 职场文书
2015年社区矫正工作总结
2015/04/21 职场文书
2015年人力资源部工作总结
2015/04/30 职场文书
html5调用摄像头截图功能
2022/01/18 Javascript
MySQL如何修改字段类型和字段长度
2022/06/10 MySQL