에 인수를 바인딩하지 것은 여기 내 Greeter 클래스입니다. 하지만 실행하면 오류가 발생합니다 :생성자는 클래스 컨텍스트
Uncaught TypeError: Cannot read property 'log' of undefined
무슨 일 이죠?
업데이트 : typescript playground에서도 오류가 발생합니다.
에 인수를 바인딩하지 것은 여기 내 Greeter 클래스입니다. 하지만 실행하면 오류가 발생합니다 :생성자는 클래스 컨텍스트
Uncaught TypeError: Cannot read property 'log' of undefined
무슨 일 이죠?
업데이트 : typescript playground에서도 오류가 발생합니다.
생성자에서는 민간 분야를 설정하지 l
그래서
constructor(l : Logger) {
this.foo = "bar";
this.l = l;
this.l.log(this.foo);
}
또는 (크레딧 torazaburo로 이동)
constructor(private l : Logger) {
this.foo = "bar";
this.l.log(this.foo);
}
참조 JSFiddle here
처럼 시도 this.l
에 할당 된 적이 없습니다. 따라서 고정 코드 :
class Logger {
constructor() {}
public log(msg : string) {
console.log(msg);
}
}
class Greeter {
public foo: string;
private l : Logger;
constructor(l : Logger) {
this.foo = "bar";
this.l = l; // !!!!!This line is the fix!!!!!
this.l.log(this.foo);
}
}
let g = new Greeter(new Logger());
console.log(g.foo);
또는 'constructor (private l : Logger)'. –
thx - 통합 – DAXaholic