April Breeze is blowing...

'WTFJS'에 해당되는 글 1건

  1. 2010/02/16 WTFJS ... String('string') instanceof String

ajaxian.com - WTFJS, firejune.com - WTFJS(젠장할 자바스크립트), ajaxian.kr - WTFJS: “string” instanceof String 에 언급된
WTFJS(왓 더 삐-_- JS)의 아래 예문을 보고 이것저것 테스트를 해보니 또 재미있는게 있어서 대충 정리를 해봤습니다.

"string" instanceof String; // false.

이걸 좀 바꿔보면 아래처럼도 쓸 수 있습니다.

String('string') instanceof String // false
typeof String('string') // string
-> new를 안붙였기 때문에 역시나 false가 나옴. 일반적인 함수 실행하고 string을 리턴받는 형식으로 보임.

그런데,
Object('string') instanceof String // true
이렇게 new를 안붙이고 Object()를 쓸때는 또 true 가 나옵니다-_- new를 붙여도 마찬가지로 true.

new String('string') instanceof String // true
typeof new String('string') // object
-> 요게 당연히? 맞는 케이스이고, String은 Object에서 파생된 클래스라서 typeof에 object가 나오는 것까지는 좋은데,

var a = new Object('blah')
a instanceof String // true
-> 이렇게 거꾸로 됐음에도 true가 나옵니다. 클래스 상속 개념과는 전혀 안맞음-_-

String뿐만 아니라 Number, Boolean, Array, Function, RegExp 등의 'Global Objects'의 'Basic Data Type' 에도 동일하게 적용이 돼서
인자의 타입과 맞는 object가 생성이 돼버립니다. (단, Date는 제외)

참고 : Javascript Instanceof, Standard global objects (By type)




하여간, 자바스크립트라는 놈은 뭔가 독특해서 더 재미있는듯...ㅋ...

2010/02/16 05:15 2010/02/16 05:15
2010/02/16 05:15
Category dev.
Tag
1 
전체 (117)
calm (50)
passion (3)
Bicycle (31)
dev. (12)
Mac (3)
music (7)
misc. (11)
Today 33 / Yesterday 68
Total 69142
Support Wikipedia