2010-11-19 4 views

답변

11

그러면 함수가 정의되어 있는지 확인합니다.

if (typeof functionName === 'function') { 
    alert('loaded'); 
} 

See it.

+0

필요 없음을. 사실,'==='는'=='보다 조금 느립니다. –

+0

@Marcel Korpel 나는 조건을 충족시키는 지보기 위해 유형을 강요 할 필요가 없기 때문에'==='는 보통 더 빠르다고 생각했다. 오 잘, 매일 새로운 것을 배웁니다. BTW, 그것에 대한 추가 읽기 또는 벤치 마크가 있습니까? – alex

+3

@Marcel Korpel 아니오,'==='는 * 실제로 * ** 빠릅니다 ** 유형 변환을위한 * 오버 헤드가 없으므로. 또한'==='를 사용하는 것이 좋습니다. 내 노드 repl에 대한 빠른 검사조차도 proof와 같다. 숫자와 문자열이 관련 될 때'=='은 약 10 배 느리다. –

1

당신은 명시 적으로 함수를 호출하기 전에 있다고 확인할 수 있습니다.

if (typeof(functionName) == "function") 
    functionName(); 
+4

'functionName' 주위에는 괄호가 필요 없습니다. 'typeof'는 함수가 아니라 연산자입니다. –

1

loaded은 무엇을 의미합니까?

일반적으로 모든 스크립트를 호출하기 전에 onload 이벤트와 같은 것을 사용하여 모든 스크립트를로드해야합니다. 경우 당신은 함수가 선언되었는지 여부를하려는 여부를 당신은 typeof 연산자를 사용할 수 있습니다`===`,`으로 typeof` 항상 문자열을 반환에 대한

// Check the type of "myRandomFunction" 
// Note: typeof is the only way you can use undeclared variables without raising an exception 
if (typeof myRandomFunction === 'function') { 
    myRandomFunction() 
} 
+0

감사합니다. – Thomas

관련 문제