>>> b() {return "aaa"} Function.prototype.c=function(){return b();}}
>>> a()
>>> >function( )
>>> a.c()
"aaa"
>>> a.hasOwnProperty("c")
false
참조 이 코드는 먼저 함수 a를 선언하고 함수 b를 내부적으로 정의합니다. 그러나 함수 b는 함수 객체 a의 메서드가 아니라 단지 임시 변수 함수(또는 전용 함수)일 뿐입니다. 나중에 function(){}을 사용하여 a 내부에 함수 c가 정의되었으므로 클로저가 생성되었으므로 c는 물론 b를 포함하여 a 아래에 있는 블록의 모든 내부 변수를 탐색할 수 있습니다. Function.prototype 아래에 c를 연결했습니다. 즉, a에 직접 연결되지 않고 a의 프로토타입 체인에 연결됩니다. 최종적으로 실행되며 hasOwnProperty도 false이고
이 있습니다. code
>>> {}; 함수 a(){함수 b(){return "aaa"} d.c=function(){return b();}}
>>> a()
>> > d.c ()
"aaa"
Context는 이를 변경하기 위해 호출 적용 메소드를 사용할 수 있지만, 함수가 정의된 후에는 클로저를 수정할 수 없습니다. 예, 그럴지는 모르겠습니다.