|
Object.extend(Number.prototype, (function() {
//返回十六進(jìn)制顏色之
function toColorPart() {
return this.toPaddedString(2, 16);
}
//返回連續(xù)的下一個數(shù)值
function succ() {
return this + 1;
}
//連續(xù)執(zhí)行某個操作
function times(iterator, context) {
$R(0, this, true).each(iterator, context);
return this;
}
//返回固定長度的字符串,前面補(bǔ)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擴(kuò)展的方法。
times方法:
看一下示例
復(fù)制代碼 代碼如下:
var s = '';
(5).times(function(n) { s += n; });
alert(s);
// -> '01234'
//函數(shù)原型:times(iterator) -> Number,基本就是連續(xù)執(zhí)行N次iterator方法,并且傳給iterator的第一個參數(shù)為0~N-1
/*
這里注意一下調(diào)用方法時的寫法:5要加上括號,否則直接寫5.times,語法會有錯誤。因?yàn)?后面的點(diǎn)會被當(dāng)成小數(shù)點(diǎn)解析,而小數(shù)點(diǎn)后面跟字符串會有語法錯誤。
還可以有令一種寫法:5['times'](function(n) { s += n; });
其實(shí)這里的5和Number的關(guān)系就相當(dāng)于C#里面int和Integer個關(guān)系差不多
*/
toJSON方法:
這個方法里面的isFinite(number)是JavaScript提供的全局方法:
假如 number 不是 NaN 、負(fù)無窮或正無窮,那么 isFinite 方法將返回 true 。 假如是這三種情況,函數(shù)返回 false 。
剩下方法就不多解釋了,太簡單了,給幾個示例看看就完了:
復(fù)制代碼 代碼如下:
(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技術(shù):Prototype Number對象 學(xué)習(xí),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。