저는 TypeScript를 처음 접했고 꽤 이해가되지 않는 요점이 있습니다. TypeScript - getOwnPropertyNames() - 생성자 속성 대 Getter/Setter
다음과 같은 클래스를 상상해 : 나의 이해에서export class PropertyInConstructor {
constructor(public foo: boolean) {
}
}
export class PropertyWithGetSet {
private _foo: boolean = false;
get foo(): boolean {
return this._foo;
}
set foo(theFoo: boolean) {
this._foo = theFoo;
}
}
이 두 가지 방법 모두 내게 new PropertyInConstructor().foo
또는 new PropertyWithGetSet().foo
를 사용하여 액세스 할 수있는 속성을 제공합니다.
는 지금 (! 예를없이 를) 같은 클래스의 기존 속성을 싶어하고 그것을 밖으로 시도 :
console.log(Object.getOwnPropertyNames(PropertyInConstructor.prototype)); console.log(Object.getOwnPropertyNames(PropertyWithGetSet.prototype));
[ "생성자"]
, "foo"]
[ "생성자"
왜 생성자에서 속성을 지정하는 호출에 "foo"속성이 추가되지 않습니까?
누락되었거나 다른 속성으로 이러한 속성을 얻을 수 있습니까?
제가 아는 한, 첫 번째 예제에서는 getter/setter 쌍을 만들지 않습니다. 두 번째 예제는 실제로 프로토 타입에 defineProperty를 수행합니다. 예제를 http://www.typescriptlang.org/play/index.html로 복사하면이 내용이 표시됩니다. –