2010-12-06 2 views
6

가능한 중복 :
Null object in javascriptnull이 개체입니까?

널 객체의 권리는 무엇입니까? 그래서 x를 null로 설정하면 생성자 값을 얻을 수없는 이유는 무엇입니까?

var x = null; 
alert(typeof x); 
alert(x.constructor); 
+1

또한 가능한 복제본 Is null an object in JavaScript? stillstanding

+0

@birryree는이 주제와 중복되지 않습니다. 그 하나는'null'과'undefined '의 차이에 관한 것이고,'null' 자체가 객체인지에 대한 질문입니다. – Harmen

답변

0

널은 자바 스크립트 객체 아니다 - 널은 null 프리미티브 타입의 단일 인스턴스와 같은 생성자가 없다.

+0

아무 것도 아닙니다 =) – StingyJack

+0

네,하지만 그 중 하나만 있습니다. 아무 것도 아무것도 될 수 없습니다. 아무 것도 아무것도 될 수 없으며, 무엇인가를 만들면 더 이상 아무것도 아닙니다. –

11

null (JS에서)은 원시 값입니다. 생성자 함수에 의해 생성되지 않았으므로 constructor 속성이 없습니다. typeof null'object' 인 것은 기본적으로 역사적인 이유로 보존 된 끔찍한 거짓말입니다. JS에서 너무 많은 일관성을 기대하지 마십시오, 당신은 실망하게 될 것입니다!

원시 값은 종종 때문에 오토 박싱에 JS에서 개체처럼 작동 할 수 있습니다 (1).constructor 작품을 1도 원시적 인 가치에도 불구하고, 그것은 암시 적으로 new Number(1)를 호출하기 때문이다. 그러나 null (또는 undefined)의 오브젝트 형식이 자동으로 변환되므로이 경우 오류가 발생합니다.

일반적으로 constructor은 피해야합니다. JS의 위에 구축 된 많은 클래스/인스턴스 모델들에 대해서는 당신이 생각하는 것을 전혀하지 않습니다. instanceof은 일반적으로 더 잘 작동합니다.

관련 문제