2011-08-03 6 views
6

가 무엇 난 그냥 typeof jQuery를이 function 뜻이 코드대해서 typeof (jQuery를)

console.log(typeof(jQuery))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>

그것은 function 경고를했습니다.

jQuery의 정확한 유형은 무엇입니까? 기능면, jQuery.browserjQuery.ajax과 같은 속성은 어떻게 생깁니 까?

+0

나는 모든 JavaScript 객체가 기능이라고 생각합니다. Javascripts OO는 익숙해지기까지 다소 이상합니다. –

+0

개체가 함수이기 때문에 함수는 자바 스크립트의 개체입니다. – deceze

+1

닫기 @Matthew, 모든 기능은 객체이며 다른 방법은 아닙니다. –

답변

6

jQuery 개체에 적용 할 때 typeof 연산자는 "function" 문자열을 반환합니다. 기본적으로 이는 jQuery이 함수라는 것을 의미합니다.

그러나 타이핑 종류가 거기에서 멈 춥니 다. 정적 형식 언어와 달리 매개 변수의 수, 순서, 모드 및 유형은 함수 유형을 계산할 때 고려되지 않습니다. 자바 스크립트에서는 단지 "함수"일뿐입니다.

자바 스크립트에서 함수를 만들

는 사용자가 만든 함수 객체는 두 가지 속성, lengthprototype을 주어, 그 프로토 타입은 applycall 같은 Function.prototype 그래서 상속 속성으로 설정됩니다.

다른 사람들이 이미 대답 했으므로 언제든지 자신의 속성을 추가 할 수 있습니다. 함수는 단지 객체 일뿐입니다.

"유형"에주의하십시오. 기술적으로 Null, Undefined, Boolean, Number, String 및 Object 인 SIX 유형 만 JavaScript에 있습니다. 그래서 귀하의 질문에 대한 실질적인 대답은 jQuery의 정확한 유형은 .... 실제로 ... 드럼 롤 .... 개체입니다.

+0

jQuery가 실제로 함수의 하위 집합이며 object가 유효한 유형 인 경우 '형식이 jQuery가 아니며'객체를 반환하지 않는 이유는 무엇입니까? – Luke

+0

JavaScript는 유형 계층 구조에 관심이 없으므로유형 오브젝트 나 상위 유형 또는 부속 유형에 대한 개념은 없습니다. 'typeof' 연산자는 _type_이 아닌 _string_을 반환합니다. 유형은 언어 참조에 정의 된 항목입니다. 당신은 코드에서 그것들을 다루지 않는다. 단지'typeof' 연산자로부터 문자열을 얻는다. [연산자에 대한 설명은 다음과 같습니다] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof). 당신은 그것이 많은 의미를 갖기위한 것이 아님을 볼 수 있습니다. 그것은 단지 그것이하는 일을합니다. –

5

함수는 객체이며 자바 스크립트에서 속성을 가질 수 있습니다.

기본적으로 함수가 가지고있는 속성 중 일부를 살펴보고 추가 속성을 추가 할 수 있습니다 (참조).

3

그냥 너 자신을하려고하면 이해할 수있을 겁니다 : 물론, 그것은 또한 call()처럼, 자신의 기능을 포함하는, 목적뿐만 아니라 속성을 가질 수

function f() { 
} 

f.prop = '123'; 

alert(f.prop); 

jQueryfunction하지만, .

관련 문제