Object.extend(Number.prototype, (function() {
//16진수 색상 A 값 반환
function succ() {
return this 1
}
//계속 연산 수행
function times(iterator, context) {
$R (0, this, true).each(iterator, context);
return this
}
//고정 길이 반환; 문자열, 앞에 0이 추가됨
function toPendedString(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,
toPendedString: toPendedString,
toJSON: toJSON,
abs: abs,
round: round ,
ceil: ceil,
floor: Floor
};
})());
다음은 몇 가지 프로토타입 확장 방법입니다.
times 방식:
예제 보기
코드 복사
코드는 다음과 같습니다.
//함수 프로토타입: times(iterator) -> Number, 기본적으로 반복자 메서드를 N번 연속 실행하며, 반복자에 전달되는 첫 번째 매개변수는 0~N-1
/ *
메소드 호출 시 작성 방법에 주의하세요. 괄호 안에 5를 추가해야 하며, 그렇지 않으면 5.time을 직접 작성하면 구문 오류가 발생합니다. 5 이후의 점은 소수점으로 해석되고, 소수점 뒤에 문자열이 오면 구문 오류가 발생하기 때문입니다.
다른 방법으로 쓸 수도 있습니다: 5['times'](function(n) { s = n; })
사실 여기서 5와 Number의 관계는 int와 Integer와 동일합니다. C#에서는 거의 동일
*/
toJSON 메서드:
이 메소드의 isFinite(number)는 JavaScript에서 제공하는 전역 메소드입니다.
number가 NaN, 음의 무한대 또는 양의 무한대가 아닌 경우 isFinite 메소드는 true를 반환합니다. 이 세 가지 경우에 함수는 false를 반환합니다.
나머지 방법은 설명하지 않겠습니다. 너무 간단합니다. 몇 가지 예만 보여드리겠습니다.
코드 복사
코드는 다음과 같습니다.(128).toColorPart() // -> '80'
(10).toColorPart()
// -> '0a'
(13).toPendedString(4) // -> '0013'
(13).toPendedString(2); '13'
(13).toPendedString(1); // -> '13'
(13).toPendedString(4, 16) // -> .toPendedString (4, 2); // ->