일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 티스토리챌린지
- Vue.js
- 스마트컨트렉트테스트
- ethers typescript
- ambiguous function description
- ethers type
- 러스트기초
- Vue
- 머신러닝기초
- vue기초
- rust 기초
- 스마트컨트렉트 함수이름 중복 호출
- chainlink 설명
- 오블완
- 러스트 기초 학습
- nest.js설명
- 컨트렉트 배포 자동화
- SBT표준
- 스마트 컨트렉트 함수이름 중복
- 컨트렉트 동일한 함수이름 호출
- 러스트 기초
- 프록시배포구조
- ethers
- git rebase
- 스마트컨트렉트 예약어 함수이름 중복
- ethers v6
- 스마트컨트렉트프록시
- 체인의정석
- ethers websocket
- multicall
Archives
- Today
- Total
체인의정석
javascript 정적 메소드 본문
728x90
반응형
class 안에 함수를 정의할 때 static으로 정적 메소드를 활용해보라는 피드백을 받았다.
원래는 constructor 안에 클래스 형태로 받아와서 함수를 세팅해주는 역할이 있지만 여기서는 클래스 형태로 받아와서 객체를 생성하는 기능과 json 형태로 받아와서 클래스로 만들어 주는 기능을 둘 다 사용하기로 하였다.
참고 링크
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Classes/static
class ClassWithStaticMethod {
static staticProperty = 'someValue';
static staticMethod() {
return 'static method has been called.';
}
}
console.log(ClassWithStaticMethod.staticProperty);
// output: "someValue"
console.log(ClassWithStaticMethod.staticMethod());
// output: "static method has been called."
정적 메서드는 클래스의 인스턴스 없이 호출이 가능하며 클래스가 인스턴스화되면 호출할 수 없다.
한마디로 위와 같은 상황에서 constructor를 사용하지 않고도 인스턴스를 만들어 줄 때도 쓰일 수 있는 것이다.
정적 메서드는 동일한 클래스내에서 사용하게 될 경우 this를 사용하여 정적 메소드 내에서 다른 정적 메소드를 가져와서 쓸 수 도 있다.
class StaticMethodCall {
static staticMethod() {
return 'Static method has been called';
}
static anotherStaticMethod() {
return this.staticMethod() + ' from another static method';
}
}
StaticMethodCall.staticMethod();
// 'Static method has been called'
StaticMethodCall.anotherStaticMethod();
// 'Static method has been called from another static method'
그러나 정적 메서드가 비정적 메서드에서 키워드 this를 써서 직접적으로 접근할 수는 없다. 이러한 경우
CLASSNAME.STATIC_METHOD_NAME() 을 사용하거나 메서드를 생성자의 한 속성으로 constructor : this.constructor.STATIC_METHOD_NAME()를 이용한다.
class StaticMethodCall {
constructor() {
console.log(StaticMethodCall.staticMethod());
// 'static method has been called.'
console.log(this.constructor.staticMethod());
// 'static method has been called.'
}
static staticMethod() {
return 'static method has been called.';
}
}
728x90
반응형
'개발' 카테고리의 다른 글
객체지향 프로그래밍 하기 - 모듈 구현 기준 (0) | 2021.07.15 |
---|---|
javascript map 함수 (0) | 2021.07.15 |
TypeScript에서 에러 발생시켜서 특정 위치의 변수 체크하기 (0) | 2021.07.15 |
타입스크립트 정규 표현식 검사 (삭제된 코드 백업) (0) | 2021.07.09 |
Regular Expression(RegExp)사용하기 Typescript (0) | 2021.07.07 |
Comments