2010-07-24 6 views
3

자신 만의 사용자 지정을 만들 수 있습니까? 나는이 용어가 '방법'이라고 생각합니까? 예를 들어, 다음과 같습니다.맞춤 교체 방법은 무엇입니까?

여기서 replaceSpecial()은 문자 e를 다른 것으로 자동 대체합니다.

내가 이것을하기를 원하는 이유는 문자열을 집어 넣고 많은 수의 바꾸기 작업을 실행하기 때문입니다. 그래서 replaceSpecial()을 호출하면 기능.

감사

답변

8

당신은 모든 문자열을 사용할 수있게되는 String.prototype에 방법을 추가 할 수 있습니다. 그것이 대부분의 라이브러리에서 예를 들어 trim()이 구현 된 방법입니다.

String.prototype.replaceSpecial = function() { 
    return this.replace(/l/g, 'L'); 
}; 

"hello".replaceSpecial(); // heLLo 

그러나, 일반적으로 기본 프로토 타입에 매우 구체적인 기능을 정의하는 나쁜 관행 있습니다. 위와 똑같은 문제의 좋은 예입니다. 이러한 특정 경우에는 사용자 정의 함수 또는 랩퍼를 사용하여 작업을 수행하는 것이 좋습니다.

function replaceSpecial(str) { 
    return str.replace(/l/g, 'L'); 
} 

replaceSpecial("hello"); // heLLo 

또는 예를 들어 사용자 정의 네임 스페이스.

var StringUtils = { 
    replaceSpecial: function(str) { .. }, 
    .. 
}; 

StringUtils.replaceSpecial("hello"); // heLLo 
+0

감사합니다. :) – Pete

+0

당신은 가장 환영합니다 :) – Anurag

+0

+1. 'Object.prototype' 또는'Array.prototype'를 보완하는 것이 결코 좋지 않다는 것을 언급 할 가치가 있습니다. 다른 내장 생성자 프로토 타입을 수정하는 경우도 있습니다. 예를 들어, dynarch 달력 스크립트는 다른 일반적인 스크립트를 깨뜨리는'Date.prototype'을 수정합니다. 순간. –

관련 문제