let sayBye = function () {
console.log(Bye
);
}
let bye = sayBye;
sayBye = null; // X
bye(); // Y
이 질문을하기 전에 Google에서 검색 하여이 게시물을 찾았 습니다.
그런 다음 X 행 앞에 다음과 같은 구조가 있다고 생각했습니다.
sayBye ---------------
|
| => function() {....}
|
bye-------------------
x 라인 뒤에 다음과 같이 생각했습니다.
sayBye MEMORY
| => function() {....}
|
bye-------------------
하지만 파이어 폭스 개발자 도구에서 작별 인사를 썼을 때 이것을 보았습니다.
그게 어떻게 가능해? 내가 썼을 때 let bye = sayBye;sayBye는 coppied입니까?
let sayBye = function () {
console.log(Bye
);
}
let bye = sayBye;
sayBye = null; // X
bye(); // Y
console.log(bye);
스 니펫 확장
자바 스크립트
공유 이 질문을 개선 따르다
편집 된 시간 5 분 전
Cid
12.6k4골드 배지 4 개2121 개의 은색 배지42청동 휘장 42 개
질문 : 57 분 전에
Mesut Çifci
574브론즈 배지 4 개
삼
Chrome은 이것을 표시하지 않습니다. 공유 한 스 니펫이 정확합니까? 당신은, 당신은 함수의 이름을하지 않았다 확인 즉, 수 function sayBye() {대신 function () {첫 번째 줄에? – sp00m 55 분 전
현재 함수 생성되지 것 없이 이름을, 어떤 sayBye되어 있지 복사, 할당은 x = y복사되지 않습니다. – jonrsharpe 53 분 전
2
오 잠깐, 방금 Firefox에서 시도했는데 함수 이름이 대신 표시되는 것으로 표시 sayBye됩니다 ... 이상합니다! – sp00m 53 분 전
의견을 추가하다
3 개의 답변
2
변수와 메서드는 구문 위치에서 익명 함수의 이름을 유추 할 수 있습니다 (ECMAScript 2015의 새로운 기능).
Chrome과 Firefox는 모두 "sayBye"인쇄 할 때 제공 bye.name합니다.
개인 실험에서 Chrome 콘솔 bye.toString()은를 요청할 때 표시 bye하고 Firefox는 사용자 지정 출력을 표시하며 여기서 함수의 추론 된 이름을 표시합니다 (이름을 아는 것이 일반적으로 디버깅에 도움이되므로 의미가 있음).
공유 이 답변을 개선 따르다
편집 됨 24 분 전
50 분 전에 답변 함
sp00m
42.8k2222 개의 골드 배지121은색 배지 121 개227브론즈 배지 227 개
의견을 추가하다
1
함수 이름으로 혼동합니다.
기억은 당신이 생각한 것과 똑같은 방식으로 발생합니다.
그러나 함수에 명시적인 이름이 없었기 때문에 브라우저는 함수에 암시 적 이름 , 즉 처음 할당 된 변수 또는 개체 속성의 이름 ( 이 경우 sayBye.
그런 다음 다른 변수에 할당되지만 이름은 변경되지 않습니다.
명시적인 이름을 지정하면이를 확인할 수 있습니다.
// Explicit name ----vvvv
let sayBye = function myFn() {
console.log(Bye
);
}
let bye = sayBye;
sayBye = null; // X
bye(); // Y
console.log(bye);
스 니펫 확장
공유 이 답변을 개선 따르다
답변 27 분 전
FZ
10.2k11골드 배지 11 개2727 개의 은색 배지40브론즈 배지 40 개
의견을 추가하다
0
함수는 객체이므로 할당 x = y는 복사되지 않습니다. 나는이 Nodejs를 시도했다.
Bye
[Function: sayBye]
이름을 지정하지 않으면 함수 JS가 자동으로 이름을 추가합니다. ES6에서는 myFunction.name으로 이름을 확인할 수 있습니다 . 즉, 'name'은 함수 객체의 속성입니다. 중요한 것은 이것이 읽기 전용 속성 이라는 것입니다 . 좋은 방법은 함수 표현식 을 사용하는 const대신 사용하는 것입니다. let또한 가능하면 함수 디버깅이 호출 스택에서 쉽게 이름을 지정하십시오.
'컴퓨터' 카테고리의 다른 글
클릭 연결 활동 만들기 (0) | 2020.11.23 |
---|---|
오디오가 html로 재생되지 않음 (0) | 2020.11.23 |
앱을 강제 종료 한 후에도 위치 업데이트가 계속 실행됩니까? (0) | 2020.11.22 |
Karate : karate에 http-request 후크가 있으며, API 호출마다 자동으로 호출되며 누구의 동작을 수정할 수 있습니까? (0) | 2020.11.22 |
XOR 변수 스와핑은 어떻게 작동합니까? (0) | 2020.11.22 |