함수를 변수에 직접 할당하는 것과 함수를 참조하는 것의 차이점은 무엇인가요?
大家讲道理
大家讲道理 2017-05-19 10:33:08
0
2
510

함수를 변수에 직접 할당하는 것과 함수를 참조하는 것의 차이점은 무엇인가요?

예: 조각 1 및 조각 2

클립 1

으아악

클립 2

으아악

조각 1의 onclick 함수는 fn의 변수에 대한 액세스를 허용하지만 조각 2의 onclick 함수는 fn의 변수에 대한 액세스를 허용하지 않습니다. 조각 2의 click은 fn 외부에서 정의되기 때문입니다. fn에 액세스할 수 없습니다. 즉, 조각 2에서 onclick에 대한 할당이 실제로 복사본이 아니라 참조라는 뜻입니까?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

모든 응답(2)
我想大声告诉你

아니요, 아니요, 메서드를 호출하거나 매개변수를 전달하는 것이 아니므로 이 두 예제의 핵심은 참조/복사 문제가 아닙니다

이것은 범위(프로토타입 체인) 문제입니다

변수는 범위마다 서로 다른 액세스 권한을 가집니다.
하위 범위는 상위 범위에 액세스할 수 있습니다.
상위 범위는 하위 범위에 액세스할 수 없습니다.
유사한 범위는 서로 상호 작용할 수 없습니다.

를 방문하세요.
PHPzhong

js의 범위는 정의할 때 이미 결정되어 있습니다.

클립1중

으아악

box에 바인딩된 onclick 콜백은 fn 함수 내부에 있으므로 그 안에 있는 모든 지역 변수는 콜백에서 액세스할 수 있습니다. onclick回调,是在fn的函数内部,因此其内部所有局部变量都能被该回调访问到。

片段2中

function fn(){
  var box = document.getElementById("box");
  box.onclick = function(){
      console.log(111);
  };
  box = null;
}

click方法在fn函数外部,与之同级,由于定义时,click

clip2중#🎜🎜# 으아악 #🎜🎜#click 메서드는 fn 함수 외부에 있으며 동일한 수준에 있습니다. click이 정의되었을 때 아직 fn 내부에 있지 않기 때문에 내부 범위를 지정할 수 없습니다. 액세스했습니다. #🎜🎜#
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿