아래 Vue 3의 간단한 구성요소 예를 살펴보세요.
이유를 one()函数调用two()函数时,this在two()函数中是undefined。两个函数都在setup()中返回,所以我期望它们都能访问this부터 이해하려고 노력 중입니다.
one()
two()
this
undefined
setup()
그런데 two()函数中获取对组件实例this에 있는 인용문은 어때요?
Vue는 여전히 JavaScript의 규칙을 따라야 한다고 생각합니다. 이벤트 핸들러가 호출되는 경우 일반적으로 이벤트를 수신하는 객체의 컨텍스트에서 발생합니다. 이 경우에는 one()被绑定到<a>元素的Proxy,并且this绑定到Proxy.
<a>
Proxy
그러나 two()被特别地调用没有上下文(即:two()而不是someobject.foo())。这意味着this는 정의되지 않습니다.
someobject.foo()
저는 Vue에 대해 잘 알지는 못하지만 자동으로 메소드를 바인딩하지 않으므로 사용하지 않는 것에 대해 비용을 지불할 필요가 없다고 생각합니다.
기본 함수로 호출되는 대신 one()中this已正确绑定,你实际上可以将two()作为this의 메서드 호출로 인해:
Vue는 여전히 JavaScript의 규칙을 따라야 한다고 생각합니다. 이벤트 핸들러가 호출되는 경우 일반적으로 이벤트를 수신하는 객체의 컨텍스트에서 발생합니다. 이 경우에는
one()
被绑定到<a>
元素的Proxy
,并且this
绑定到Proxy
.그러나
two()
被特别地调用没有上下文(即:two()
而不是someobject.foo()
)。这意味着this
는 정의되지 않습니다.저는 Vue에 대해 잘 알지는 못하지만 자동으로 메소드를 바인딩하지 않으므로 사용하지 않는 것에 대해 비용을 지불할 필요가 없다고 생각합니다.
기본 함수로 호출되는 대신
으아악one()
中this
已正确绑定,你实际上可以将two()
作为this
의 메서드 호출로 인해: