나는 비슷한 질문을했지만 동일하지 않았습니다. 이것은 새로운 ES6 클래스 키워드와이를 처리하는 방법에 중점을 둡니다. SignalR이 클래스 메소드를 호출 중입니다. 클래스 메서드 'this'가 클래스 인스턴스 자체가 아닌 SignalR 허브를 참조 할 때. SignalR이 새로운 ES6 클래스를 사용하여 호출 한이 클래스 멤버 내에서 클래스 인스턴스를 어떻게 얻을 수 있습니까?SignalR 클래스 메서드 콜백 및 'this'
class gameLoad {
constructor(){
}
init(){
// create the network object and hook it's functions update for loading
this.network = $.connection.testHub;
this.network.client.hello = this.sayHello;
}
// this is called from signalR and 'this' now refers to the signalR hub inside this function. how can I get the class instance?
sayHello(){
console.log(this); // 'this' refers to signalR object not gameLoad object
}
create(){
var self = this;
$.connection.hub.start().done(function() {
console.log("Started!")
console.log("Calling server function.");
// make our first network call which will turn around and call client.hello which is bound to this classes sayHello() member function
self.network.server.hello();
});
}
}
이 ES6 클래스와 아무 상관이 없다, 그것은 일을 정확히 동일한 방법 : 당신이 화살표 함수로의 sayHello를 변환 할 수 있습니다, 또는
: 당신은 그 시간에 거기에 gameLoad을 결합해야합니다 ES5에서. – Bergi