-
글쓴이글
-
2022년 1월 24일 07:01 #25569
frysweet참가자선생님 '클래스'의 프로퍼티도 구조 분해 할당 할 수 있나요?
예를 들어서,
클래스 A 에 class A { get 함수1(), set 함수1() } 이 선언되어 있고 클래스 B에서 클래스 A를 모듈로 끌어다 사용한다면..
클래스 B 안에서
const { 함수1 } = 클래스 A 라고 할당한다면, const 함수1 은 클래스 A의 get 함수1 이 되는 것인지, set 함수1 이 되는 것인지 궁금합니다.
2022년 1월 24일 10:05 #25579
codingapple키 마스터일단 const { 함수1 } = 클래스 A 이렇게 class는 destructuring이 안될듯 싶은데요
만들어놓은 A.prototype.함수1을 다른 변수나 자료에 집어넣어서 쓰는건 되긴 될듯요
2022년 1월 25일 10:05 #25683
frysweet참가자답변 감사합니다. 클래스는 구조분해 할당이 안되는 군요...
그렇다면 클래스 A 를 new 생성자 를 통해 인스턴스를 생성한 경우엔, 구조분해 할당이 될까요?
클래스 A 는
class A {
get a( ) {...} ,
set a( ){...}
} 이고,클래스 A를 모듈로 끌어다 쓰는 클래스 B 안에서, const { a } = new A( ); 로 클래스 A의 인스턴스를 할당해 놓는다면,
인스턴스도 객체이므로 할당이 되는걸까요
만약 할당이 된다면 동일한 이름의 get, set 프로퍼티 중 어느것이 할당되는 것인지 궁금합니다.
2022년 1월 25일 23:04 #25742
frysweet참가자아 .. ㅠㅠ 그렇군요.. 어떻게 해석해야 하는지 깜깜하네요ㅠㅠ
JS 변수 할당 문법 해석이 너무 어렵습니다..
1. 클래스 A, 클래스 B 파일들을 웹팩으로 'context' 를 생성하고,
2. context 안의 클래스들을 각각 생성자 함수로 인스턴스들을 생성해서
3. 각각의 인스턴스들을 'const modules' 변수에 { 인스턴스 이름 : 인스턴스 } 형식으로 할당해 놓았는데요..
4.
클래스 B 모듈 파일에서, 각각의 인스턴스들이 들어간 변수 'modules' 를 사용하여 ,modules.[클래스A 인스턴스이름] 형식으로 호출해서 const { a } = modules.['클래스A' 인스턴스 이름] 으로 할당해놓았거든요.
그런데 { a } 의 a의 이름과 일치하는 프로퍼티가 모듈 A에 get, set 함수 밖에 없습니다..
이럴때 const { a } 에는 모듈 A 자체가 할당 되었다고 봐야 하나요?
2022년 1월 26일 10:26 #25764
codingapple키 마스터class A { test = function(){ console.log(1) } }
var instance = new A();
var {test} = instance;이렇게 만들면 가능하긴합니다
변수함수선언없이 class 안에 넣는 것들은 public 필드라고 부릅니다
2022년 1월 26일 22:23 #25859
frysweet참가자인스턴스1의 클래스 A에 함수가' 표현식'이 아닌, '선언식' 으로,
set '함수이름1' () { ... };
get '함수이름1'() { ... };
=> 형식으로 선언되어 있는데요.이럴때는 다른 모듈파일 B 에서 const { '함수이름1' } = 인스턴스1; 식으로 할당해서 사용할때,
const { '함수이름' } 은 인스턴스1 자체가 할당되는걸까요?이해가 어려운점이 인스턴스 1에 선언되어 있는 다른 메소드들은 인스턴스1.'메소드이름' 식으로 꺼내서 쓰고 있는데,
저부분만 인스턴스1의 특정 함수이름과 동일한 변수이름을 const { '함수이름1' } 식으로 할당해서 사용하고 있어요.여기서 this.Editor.BlockManager 가 클래스 A를 생성자로 만든 인스턴스 이구요.
------------------------------------------------------------------------------------------------------------------------------
이 부분이 'this.Editor.BlockManager' 모듈의 'get / set' 함수인데
'다른 모듈'에서 'this.Editor.BlockManager'를 할당받는 변수 'const { currentBlock }' 과 동일한 이름입니다.2022년 1월 26일 22:55 #25862
codingapple키 마스터타입스크립트에선 public 키워드 왼쪽에 붙이면 public 필드가 됩니다
그럼 instance 만들 때 추가될텐데 destructuring도 가능하겠군요
-
글쓴이글
- 답변은 로그인 후 가능합니다.