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检测函数
May 31 Javascript
jQuery学习基础知识小结
Nov 25 Javascript
jQuery动画效果-fadeIn fadeOut淡入浅出示例代码
Aug 28 Javascript
js实现ifram取父窗口URL地址的方法
Feb 09 Javascript
Vue.js中数组变动的检测详解
Oct 12 Javascript
js图片切换具体实现代码
Oct 13 Javascript
JS 调用微信扫一扫功能
Dec 22 Javascript
Vue下的国际化处理方法
Dec 18 Javascript
微信小程序实现团购或秒杀批量倒计时
Nov 01 Javascript
详解关于Angular4 ng-zorro使用过程中遇到的问题
Dec 05 Javascript
js实现的格式化数字和金额功能简单示例
Jul 30 Javascript
js实现网页版贪吃蛇游戏
Feb 22 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
文件上传的实现
2006/10/09 PHP
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
2006/12/06 PHP
php 验证码制作(网树注释思想)
2009/07/20 PHP
destoon供应信息title调用出公司名称的方法
2014/08/22 PHP
php版微信自定义回复功能示例
2016/12/05 PHP
PHP实现接收二进制流转换成图片的方法
2017/01/10 PHP
详谈PHP面向对象中常用的关键字和魔术方法
2017/02/04 PHP
php和nginx交互实例讲解
2019/09/24 PHP
jQuery方法简洁实现隔行换色及toggleClass的使用
2013/03/15 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
Javascript写入txt和读取txt文件示例
2014/02/12 Javascript
jQuery性能优化的38个建议
2014/03/04 Javascript
Nodejs Stream 数据流使用手册
2016/04/17 NodeJs
javascript 动态样式添加的简单实现
2016/10/11 Javascript
JavaScript实现点击按钮复制指定区域文本(推荐)
2016/11/25 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
2017/04/25 Javascript
浅谈ECMAScript6新特性之let、const
2017/08/02 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
vue: WebStorm设置快速编译运行的方法
2018/10/18 Javascript
JavaScript中Dom操作实例详解
2019/07/08 Javascript
为Python的web框架编写MVC配置来使其运行的教程
2015/04/30 Python
python 计算文件的md5值实例
2017/01/13 Python
python基础教程之Filter使用方法
2017/01/17 Python
python matplotlib坐标轴设置的方法
2017/12/05 Python
python的turtle库使用详解
2019/05/10 Python
Python中print函数简单使用总结
2019/08/05 Python
Django学习之文件上传与下载
2019/10/06 Python
tensorflow之变量初始化(tf.Variable)使用详解
2020/02/06 Python
PyCharm配置anaconda环境的步骤详解
2020/07/31 Python
安全生产先进个人材料
2014/02/06 职场文书
作风建设年活动总结
2014/08/27 职场文书
2014年团员学习十八大思想汇报
2014/09/13 职场文书
群众路线教育实践活动总结
2014/10/30 职场文书
小学教师岗位职责
2015/04/02 职场文书
2019求职信:应届生求职信范文
2019/04/24 职场文书
Pytorch 如何实现常用正则化
2021/05/27 Python