이것은 JavaScript의 키워드입니다. 이것의 값은 함수 사용에 따라 변경됩니다. 그러나 항상 원칙, 즉 기능을 부르는 객체를 말합니다.
전통적인 OO 언어 에서이 포인터는 클래스에서 선언되며 객체 자체를 나타냅니다. JavaScript에서 이것은 현재 컨텍스트, 즉 발신자의 참조를 나타냅니다.
******* 이것은 항상 (함수 객체)의 소유자를 가리 킵니다.
이 글로벌 개체 :
var a = 1; 함수 foo () {var b = 2; console.log (this.a+b); // 3} foo (); // foo 함수의 소유자는 창이며, 이것은 전역 함수의 창 객체를 나타냅니다 (************ 새, 호출, 적용 메소드 가이의 참조 관계를 변경하는 데 사용되지 않는 한).이것과 대상 :
var person = {name : 'theo wong', 성별 : 'male', getName : function () {console.log (this.name); // getName 함수의 소유자는 개인 개체}}}; person.getName ();중첩 된 기능으로
var myObject = {func1 : function () {console.log (this); // myObject var func2 = function () {console.log (this); // Window var func3 = function () {console.log (this); //창문 }(); } (); }}; myObject.func1 (); // 중첩 함수에서 중첩 된 함수의 실행 컨텍스트가 창이므로 창 객체를 나타냅니다. 실제로 이것은 ECMA-262-3의 버그이며 최신 ECMA-262-5에서 고정되었습니다.이것은 이벤트 처리에서 :
var showvalue = function () {alert (this.value); };1. <input id = "test"type = "text" />
dom.onclick, document.getElementById ( 'test')를 통한 바인딩 이벤트. OnClick = showValue;
현재 ShowValue는 DOM의 OnClick 메소드라고 불리우므로 더 이상 Window 개체가 아닌 DOM 객체를 참조해야합니다.
2. html 태그에 쓰십시오. <input id = "test"type = "text"onclick = "showValue ();" />
DOM을 클릭 할 때 우리는 이것을 올바르게 얻을 수 없습니다. 이것은 현재 창 객체를 나타냅니다. 창 객체에 정의 된 값이 없기 때문에 value를 얻을 수 없습니다.
*** 현재 ShowValue 함수를 DOM 객체의 ONCLICK에 할당하는 것이 아니라 참조입니다. 현재 function () 함수의 소유자는 Window입니다.
document.getElementById ( 'test'). onclick = function () {showValue ();}addeventListener/attorevent를 통한 바인딩 이벤트
<입력 유형 = "text"id = "test" /> <script type = "text /javaScript"> var dom = document.getElementById ( 'test'); id = '창'; 함수 test () {alert (this.id); } dom.adeventListener? dom.addeventListener ( 'click', test, false) : dom.attachevent ( 'onclick', test); // addeventListener test // afchevent Window </script> // 첨부 이벤트 모니터링 방식, 첨부 베이벤트 window 객체이며 addeventListener는 DOM 객체입니다.이것과 구성 :
함수 obj (이름, 나이) {this.name = 이름; this.age = age; this.fun = function () {alert (this.name); }; } var obj = new obj ( 'xht', 18); // 이것은이 새로운 객체를 나타냅니다. 새로운 객체는이 obj.fun ()의 참조 관계를 변경합니다. // xht이것은 전화를 걸고 전화합니다
// Jack Var Jack = {이름 : "Jack", Age : 26} // 이름을 가진 사람을 정의하십시오. 이름으로 다른 사람을 정의하십시오. abruzzi var abruzzi = {name : "abruzzi", age : 26} // 글로벌 함수 객체 기능 alertName () {return this.name; } // AlertName의 컨텍스트를 Jack으로 설정하면 이시기에는 Jack Alert (AlertName.Call (Jack))입니다. // AlertName의 컨텍스트를 Abruzzi로 설정하면이 시점에서 Abruzzi Alert (AlertName.call (Abruzzi));인용문은 비교적 흥미로운 주제입니다. 다른 언어와 달리 JavaScript의 참조는 항상 참조 자체가 아니라 최종 객체를 가리 킵니다.
var obj = {}; // 빈 개체 var ref = obj; // 참조 obj.name = "대변"; 경고 (참조 이름); // ref 그런 다음 이름 속성을 추가하십시오 obj = [ "one", "two", "Three"]; // obj는 다른 객체 (Array Object) Alert (ref.name)를 가리 킵니다. // ref는 원래 객체 알림 (obj.length)을 가리 킵니다. // 3 경고 (ref.length);OBJ는 단지 익명의 대상에 대한 언급 일 뿐이므로 Ref는 그것을 가리키지 않습니다.
참조는 특정 객체 만 가리킬 수 있습니다. 특정 객체가 변경되면 변경된 객체가 아닌 원래 객체에 대한 참조 또는 참조.
위는 편집자가 소개 한 JavaScript 의이 포인터 및 참조에 대한 정보입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!