|
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技術:Prototype Number對象 學習,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。