2016-11-06 3 views
3

I 가까이자바 스크립트 함수 가까운() {}

function close() {...} 

라는 JS에서 함수를 생성하고 onclick을 호출

onclick="close()" 

을 가지고 있지만 그것이 작동하지 않습니다했습니다. 함수의 이름을 무엇이든 변경하면 작동합니다. close()라는 JS에서 함수를 사용하는 것이 금지되어있을 수 있습니까?

+0

당신은으로 만든 (기능 가까운() {}),처럼, 바로 호출 할 수있는 인생 있어야하는데 (기능 가까운() {})(), 클릭 기능을 사용하는 경우이 기능을 close() {}로 지정하는 것이 좋습니다 – Geeky

+1

@TJCrowder -> http://stackoverflow.com/questions/8550828/onclick-calling-hide-div-function- 작동하지 않음 – adeneo

+0

@adeneo : 좋은 분! –

답변

3

close은 이름없는 그 함수를 호출하고 방법은 window입니다. 윈도우의 모든 개체와 마찬가지로 window이라는 접두사없이 호출 할 수 있습니다.

console.log(typeof close);

5

onxyz -attribute 스타일 이벤트 처리기에서 사용하려면 함수가 전역이어야합니다. 전역 함수는 window 개체의 속성이되므로 close을 호출하지 마십시오. 이라는 속성과 close이라는 속성이 있습니다 (이 창을 닫는 호스트 함수를 참조). 이 속성을 덮어 쓸 수 없으므로 사용이 끝난 기본 제공됩니다. (그리고 닫기 요청은 무시됩니다. Windows에서 코드를 통해 창을 닫지 못하게하는 데에는 여러 가지 이유가 있습니다.) 다른 이름을 사용하거나 더 나은 방법을 사용하십시오 : 이 아닌을 글로벌로 설정하고 최신 이벤트 처리로 연결하십시오. ES2015를 제외하고


1 나중에 전역을 만들 let 또는 const 또는 class를 사용하는 경우.

+0

왜 커뮤니티 위키입니까? –

+0

@ LightnessRacesinOrbit : 답변이 이미 완전히 알려졌다 고 생각할 때 가끔 (일관되게는 아님) 않습니다. –

2

인라인 이벤트 핸들러가 살고있는 글로벌 범위에서, 이미 덮어 쓸 수없는 window.close 기능이 있기 때문에 그것은, 그리고 당신이 당신의 자신의 기능을 close()