함수를 변수에 직접 할당하는 것과 함수를 참조하는 것의 차이점은 무엇인가요?
예: 조각 1 및 조각 2
클립 1
으아악
클립 2
으아악
조각 1의 onclick 함수는 fn의 변수에 대한 액세스를 허용하지만 조각 2의 onclick 함수는 fn의 변수에 대한 액세스를 허용하지 않습니다. 조각 2의 click은 fn 외부에서 정의되기 때문입니다. fn에 액세스할 수 없습니다. 즉, 조각 2에서 onclick에 대한 할당이 실제로 복사본이 아니라 참조라는 뜻입니까?
아니요, 아니요, 메서드를 호출하거나 매개변수를 전달하는 것이 아니므로 이 두 예제의 핵심은 참조/복사 문제가 아닙니다
이것은 범위(프로토타입 체인) 문제입니다
변수는 범위마다 서로 다른 액세스 권한을 가집니다.
를 방문하세요.하위 범위는 상위 범위에 액세스할 수 있습니다.
상위 범위는 하위 범위에 액세스할 수 없습니다.
유사한 범위는 서로 상호 작용할 수 없습니다.
js의 범위는 정의할 때 이미 결정되어 있습니다.
클립1중
으아악box에 바인딩된
onclick
콜백은 fn 함수 내부에 있으므로 그 안에 있는 모든 지역 변수는 콜백에서 액세스할 수 있습니다.onclick
回调,是在fn的函数内部,因此其内部所有局部变量都能被该回调访问到。片段2中
clip2중#🎜🎜# 으아악 #🎜🎜#click
方法在fn函数外部,与之同级,由于定义时,click
click
메서드는 fn 함수 외부에 있으며 동일한 수준에 있습니다.click
이 정의되었을 때 아직 fn 내부에 있지 않기 때문에 내부 범위를 지정할 수 없습니다. 액세스했습니다. #🎜🎜#