Vue 3 함수에서 "this"가 정의되지 않은 것으로 정의된 이유는 무엇입니까?
P粉057869348
P粉057869348 2023-11-06 10:07:01
0
1
817

아래 Vue 3의 간단한 구성요소 예를 살펴보세요.

으아악

이유를 one()函数调用two()函数时,thistwo()函数中是undefined。两个函数都在setup()中返回,所以我期望它们都能访问this부터 이해하려고 노력 중입니다.

그런데 two()函数中获取对组件实例this에 있는 인용문은 어때요?

P粉057869348
P粉057869348

모든 응답(1)
P粉776412597

Vue는 여전히 JavaScript의 규칙을 따라야 한다고 생각합니다. 이벤트 핸들러가 호출되는 경우 일반적으로 이벤트를 수신하는 객체의 컨텍스트에서 발생합니다. 이 경우에는 one()被绑定到<a>元素的Proxy,并且this绑定到Proxy.

그러나 two()被特别地调用没有上下文(即:two()而不是someobject.foo())。这意味着this는 정의되지 않습니다.

저는 Vue에 대해 잘 알지는 못하지만 자동으로 메소드를 바인딩하지 않으므로 사용하지 않는 것에 대해 비용을 지불할 필요가 없다고 생각합니다.

기본 함수로 호출되는 대신 one()this已正确绑定,你实际上可以将two()作为this의 메서드 호출로 인해:

으아악
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿