2013-02-07 2 views
6

나는 자바 스크립트의 "prototype"이라는 특정 언어 구문을 파고 싶었다. 그리고 여기 내 학습 목적 코드 : enter image description here방화범이 무한 재귀를 보여주는 생성자

이 무한 중첩에서 온 않는 경우 : 내가 불을 지르고와 지금이 코드를 디버깅 할 때

var f = function() {}; 
f.ext = 1; 
f.prototype.pext = 2; 

, 나는 다음과 같은거야? (= unterstood OK)의 상단에서 시작하자 :

F (OK)
- 내선 (OK)
- 프로토 타입 (OK)
- pext (OK)
- 생성자 (I가에 붙어있어 이 점)

누구의 생성자입니까? 그리고 왜 우리는이 infinte 둥지를 가지고 있습니까?

+0

익명 함수의 프로토 타입은 익명의 함수이기 때문에 생각합니다. 함수의 프로토 타입에 속성을 설정하기 때문에 함수의 프로토 타입에 속성을 설정합니다.이 프로토 타입은 함수의 프로토 타입에 대한 속성을 설정하는 중입니다. 확실하지 :) – Flauwekeul

답변

5

간단히 말해서 f === f.prototype.constructor이기 때문에 그 둘은 동일하며 방화범이 끌리는 것으로 순환 참조로 표시됩니다.

같은과 같이 너무 여기

var a = {}, 
    b = a; 
a.b = b; 

당신은 볼 무한 참조.

관련 문제