2012-10-01 3 views
3

변수 유형과 일치하는 함수를 작성 중입니다. typeof <var> === "something" 대신 사용할 수 있습니다.정의되지 않은 변수를 함수 매개 변수로 설정할 수 있습니까?

내 함수 호출은 다음과 같습니다 : is("some text")["string"]. true 또는 is([])["element"]을 반환합니다. 이제는 false를 반환하지만 문제가 있습니다.

예를 들어, "undefVar"와 같은 정의되지 않은 변수를 다음과 같이 나타낼 경우 : is(undefVar)["undefined"],하지만 "undefVar"가 정의되지 않았다는 오류가 발생합니다.

어떻게하면 정의되지 않은 변수를 사용하여 내 기능을 작동시킬 수 있습니까? 이것이 가능합니까?

p.s : 내가이 같은 것을 사용하는 것이 더 될 것이라고이 기능은 (나를 위해) 것 때문에 많이 사용할 필요가 : is(var)[type]typeof var === type에 반대합니다.

+2

더 좋은 해결책은 선언되기 전에 변수를 사용하여 형식이 잘못된 코드를 허용하지 않는 것입니다. 실수로 실수를 한 경우 얻은 오류 메시지를 활용하고 깨진 코드를 수정하십시오. 오류 메시지가 도움이됩니다. 그들은 억압되어서는 안됩니다. –

답변

1

typeof은 존재하지 않는 변수에서 특별합니다. 함수로 모방 할 수는 없습니다.

1

아니요, 명시 적으로 호출 사이트의 정의되지 않은 변수를 함수에 전달할 수 없으며이를 처리하기 위해 JS 엔진의 동작을 전역 적으로 변경할 수 없습니다.

typeof은 기본 제공 연산자이며 "일반"함수 규칙에 구속되지 않습니다. 따라서이 함수는 사용자 지정 함수가 수행 할 수없는 작업을 수행 할 수 있습니다.

마지막으로 가능한 경우에도 대체 구문을 사용하는 것이 실질적으로 바람직하다는 데 동의합니다.

관련 문제