javascript - 이 코드를 이해하는 방법은 무엇입니까?
扔个三星炸死你
扔个三星炸死你 2017-06-26 10:55:12
0
3
589
으아아아

최종 출력이 123인 이유는 무엇인가요? object.getNameFunc = object.getNameFunc는 무엇을 의미하나요?

扔个三星炸死你
扔个三星炸死你

모든 응답(3)
为情所困

질문을 잘못 읽었네요. 다시 설명하겠습니다.

먼저 object.getNameFunc를 보면 그 정의는

입니다. 으아악

이렇게 object.getNameFunc = object.getNameFunc라고 쓰면 실제로는 이렇게 보일 수 있습니다.

으아악

사실 그런 일을 할 때는 this 已经不是 object 了。而是 window(在浏览器里)了。所以输出的是外面的 name.

아마도 이렇겠죠 ==

phpcn_u1582

할당 작업의 결과는 lvalue입니다.

따라서
(object.getNameFunc = object.getNameFunc)()
은 다음과 같이 간주될 수 있습니다.

으아악

그래서 this는 전역을 가리키므로 123

을 얻습니다.
Peter_Zhu

으아악

이 내용의 인용 결과로 볼 때, 이는 전반적인 상황을 가리키는 것임에 틀림없으며, 중간에 이해되지 않는 링크가 있을 수 있습니다.
마지막에 코드를 추가하면 (obj.getNameFunc = obj.getNameFunc)의 내용이 무엇인지 알 수 있습니다. 네, 콘솔에 함수가 있으니 (obj.getNameFunc = obj. getNameFunc)가 실행됩니다. 결과는 함수입니다. 관성적 사고를 통해 우리는 이것이 단지 재할당 작업이고 함수를 호출하는 것은 여전히 ​​obj라는 것을 당연하게 여깁니다.
실제로는 명령문이 실행된 후 전역 객체에 의해 실제로 이 함수가 호출됩니다.

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