프록시를 사용하여 Node.js에서 PHP의 __callStatic 속성을 시뮬레이션하는 방법
P粉653045807
P粉653045807 2023-09-04 09:05:21
0
1
474

Node.js에서 PHP __callStatic 매직 메소드와 동일한 동작을 생성하려고 합니다.

프록시를 사용하여 수행하려고 하는데 이것이 최선의 선택인지 잘 모르겠습니다.

class 테스트 { 생성자() { this.num = 0 } 세트(숫자) { this.num = this.num + num 이것을 돌려줘 } 얻다() { this.num을 반환하세요. } } const TestFacade = 새 프록시({}, { 가져오기: (_, 키) => const 테스트 = 새로운 테스트() 테스트 반환[키] } }) //실행 메소드 체인은 get으로 끝납니다. console.log(TestFacade.set(10).set(20).get()) //예상 결과: 30 //반환 결과: 0 // 새로운 실행 메소드 체인을 시작하고 첫 번째 세트에서 Test 클래스를 다시 인스턴스화합니다. console.log(TestFacade.set(20).set(20).get()) //예상 결과: 40 // 반환 결과: 0

문제는 TestFacade의 속성에 액세스하려고 할 때마다 get 트랩이 트리거된다는 것입니다. 필요한 동작은 set 메소드가 호출되면 Test 클래스의 this 나중에 사용하기 위한 예입니다!

const testInstance = TestFacade.set(10) // set 메소드는 Proxy
대신 `Test`의 `this`를 반환합니다.

불분명한 점이 있으면 알려주시기 바랍니다.

P粉653045807
P粉653045807

모든 응답 (1)
P粉549986089

이것이 최선의 선택인지 모르겠습니다. 하지만 저는get陷阱中返回一个新的代理来解决了这个问题,该代理使用apply陷阱将test클래스 인스턴스를 통해 메소드에 바인딩합니다.

으아악
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿
    회사 소개 부인 성명 Sitemap
    PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!