
Javascript 내장 클래스에 사용자 정의 메소드 추가
2022-10-19 last update
5 minutes reading javascript programming beginners tutorial어떤 사람들은 이것을 알지 못하지만 실제로 문자열, 배열 등에 사용자 정의 메소드를 추가할 수 있습니다.
알다시피 자바스크립트의 모든 클래스에는 해당 클래스의 인스턴스가 사용할 수 있는 모든 메서드가 포함된 프로토타입이 있으며
문자열을 뒤집는 String 프로토타입에 대해 reverse라는 메서드를 만들어 보겠습니다.
이제 그것이 트릭을 할 것입니다.
그래서 문제는 프로토타입도 객체이고 객체도 메소드를 가질 수 있다는 것입니다. 그래서 우리는 문자열 프로토타입 객체에 역방향 메소드를 붙였습니다. 메소드 내부의 this 키워드는 메소드를 호출한 스트링을 참조할 것입니다.
이제 그것을 사용하기 위해 우리는 단순히 다른 방법처럼 그것을 호출합니다
지금은 이것이 어떻게 유용할지 모르지만 알고 있으면 멋진 일이라고 생각했습니다!
프로토타입
알다시피 자바스크립트의 모든 클래스에는 해당 클래스의 인스턴스가 사용할 수 있는 모든 메서드가 포함된 프로토타입이 있으며
Class.prototype
를 사용하여 액세스할 수 있습니다.프로토타입에 메소드 추가
문자열을 뒤집는 String 프로토타입에 대해 reverse라는 메서드를 만들어 보겠습니다.
String.prototype.reverse = function() {
let rev = "";
for (let i = 0; i < this.length; i++) {
rev = this[i] + rev;
}
return rev;
}
이제 그것이 트릭을 할 것입니다.
그래서 문제는 프로토타입도 객체이고 객체도 메소드를 가질 수 있다는 것입니다. 그래서 우리는 문자열 프로토타입 객체에 역방향 메소드를 붙였습니다. 메소드 내부의 this 키워드는 메소드를 호출한 스트링을 참조할 것입니다.
이제 그것을 사용하기 위해 우리는 단순히 다른 방법처럼 그것을 호출합니다
console.log("Hello".reverse()); //olleH
지금은 이것이 어떻게 유용할지 모르지만 알고 있으면 멋진 일이라고 생각했습니다!