<! DOCTYPE HTML > < HTML > < 머리 > < 제목 > </ 제목 > </ 머리 > < 몸 > < 스크립트 유형 = "텍스트 / 자바 스크립트" > // 测试1 VAR OBJ = {이름 : ' 하하 ' 데이터 : { 값 : 1 }}; 함수 외측 () { VAR objback = obj.data; } 반환 내부; } var에 F1 = 외부 (); F1 (); 을 console.log ( " 테스트 1. " , OBJ) // {이름 : '하하'데이터 : {값 :.}} 1; 변경되지 @ 시험 2 VAR obj2보다 = {이름 : ' 하하 ' , 데이터 {값 : . 1 }} 함수 outer2 () { VAR objback = obj2보다, 함수 내부 () { objback.data = 널 CONSOLE.LOG ( " 시험 21" , JSON.stringify (obj2보다)); // {이름 '하하'데이터 : NULL} objback.name = " 자위대 " ; CONSOLE.LOG ( " 测试22 " , JSON.stringify (obj2보다)); // {이름 '자위대'데이터 : NULL} objback.data = {}; CONSOLE.LOG ( " 测试23 " , JSON.stringify (obj2보다)); // {이름 '자위대'데이터 {}} } 반환 내측; } var에 F2 = outer2을 (), F2 (); 콘솔.(로그인 "테스트 2 " 는이 JSON.stringify (obj2보다)) // {"이름 ":"자위대 ","데이터 "{}} // 1,2- 폐쇄 개질 클로저에서 참조되는 오브젝트의 오브젝트 속성 바와 반응이 적용되지 후, 반응물을 대상으로 그 전체 개체 참조 될 수 // 테스트 3. var에 OBJ3 = {이름 : ' 하하 ' , 데이터 {값 : . 1 }} 함수 클래스를 ClassA () { 이 본 .OBJ = {이름 : ' 하하 ' , 데이터 {값 : . 1 }} 이 본 .outer = 함수 () { VAR의 데이터 = 이 본 .obj.data; VARDATA3 = obj3.data; 함수 내부 () { data.value = 2 ; DATA3 = {}; } 리턴 내측; } 이 .test = 함수 () { CONSOLE.LOG ( " 测试3 " , 이 .obj.data.value) } } VAR의 = 새 를 ClassA (); a.outer (); 시험(); 을 console.log ( " 测试3 " , 이 본 .obj3.data) // 2,3- 폐쇄 오브젝트 폐쇄 할 수없는 반응 수정 패키지 객체 속성에 의해 참조되는 오브젝트를 설명하지만, 오브젝트가 오브젝트의 값이 반응에 따라 수정 될 수있다 모든 오브젝트를 대상으로 참조되고이 반응 할 수 // . 시험 4 기능 ClassB가 () { 이 본 .OBJ = {이름 : ' 하하 ' , 데이터 {값 : 1. }} 이 본 .outer = 함수 () { VAR의 데이터 = 이 본을 .OBJ, 함수 내부 () { data.data.value = 2 ; CONSOLE.LOG ( " 시험 4. " , data.data.value) } 리턴 내측; } 이 .test = 함수 () { CONSOLE.LOG ( " 测试4 " , 이 .obj.data.value) } } // var에 B = 새로운 ClassB가 (); b.outer (); () b.test; VAR의 데이터 = {값 : 10 데이터 {값 : 1 }}; CONSOLE.LOG (JSON.stringify (데이터)); data.data = {}; 을 console.log (데이터) //전반적인 설명은 객체 속성의 객체를 가리 키도록 변경 변수 객체 자체에 반응하지 않을이 속성의 지점을 변경하지만 때문에 전용 변수의 개수. 나는 바보 </ 스크립트 > </ 몸 > </ HTML >