هذه كلمة رئيسية في جافا سكريبت. سوف تتغير قيمة هذا اعتمادًا على استخدام الوظيفة. ولكن هناك دائمًا مبدأ ، أي أن هذا يشير إلى الكائن الذي يدعو الوظيفة.
في لغة OO التقليدية ، يتم الإعلان عن هذا المؤشر في الفصل ويمثل الكائن نفسه. في JavaScript ، يمثل هذا السياق الحالي ، أي مرجع المتصل.
******* هذا يشير دائمًا إلى مالك (كائن الوظيفة)
هذا والأشياء العالمية:
var a = 1 ؛ دالة foo () {var b = 2 ؛ console.log (this.a+b) ؛ // 3} foo () ؛ // مالك وظيفة FOO هو نافذة ، وهذا يشير إلى كائن النافذة في الوظيفة العالمية (************ ما لم يتم استخدام طرق تطبيق جديدة لتغيير العلاقة المرجعية لهذا)هذا والكائن:
var person = {name: 'theo wong' ، الجنس: 'ذكر' ، 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) ؛ // window} () ؛ } () ؛ }} ؛ 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 اسم طريقة OnClick لـ DOM ، لذلك يجب أن يشير هذا إلى كائن DOM ، وليس كائن النافذة بعد الآن
2. اكتبها في علامة HTML ، <input id = "test" type = "text" onClick = "showvalue () ؛" />
عند النقر على DOM ، لا يمكننا الحصول على هذا الصحيح. هذا في هذا الوقت يشير إلى كائن النافذة. لأنه لا توجد قيمة محددة في كائن النافذة ، لا يمكن الحصول على قيمة.
*** في هذا الوقت ، لا يعين وظيفة showvalue إلى onclick لكائن DOM ، ولكن مرجع. في هذا الوقت ، فإن مالك وظيفة الوظيفة () هو نافذة
document.getElementById ('test'). onClick = function () {showvalue () ؛}الاستماع الحدث الملزم عبر addeventListener/anclesevent
<type type = "text" id = "test" /> <script type = "text /javaScript"> var dom = document.getElementById ('test') ؛ id = 'window' ؛ وظيفة test () {Alert (this.id) ؛ } dom.addeventListener؟ dom.addeventListener ('click' ، test ، false): dom.attachevent ('onClick' ، test) ؛ // AddEventListener Test // Window Attachevent </script> // هذه الطريقة لمراقبة الأحداث الربط ، Acturevent هذا هو كائن نافذة ، و addeventListener هو كائن DOMهذا وبناء:
وظيفة OBJ (الاسم ، العمر) {this.name = name ؛ this.age = العمر ؛ this.fun = function () {Alert (this.name) ؛ } ؛ } var obj = new obj ('xht' ، 18) ؛ // هذا يشير إلى هذا الكائن الجديد ، يغير جديد العلاقة المرجعية لهذا obj.fun () ؛ // xhtهذا والدعوة
// تحديد شخص يحمل اسم jack var jack = {name: "jack" ، العمر: 26} // تحديد شخص آخر باسم abruzzi var abruzzi = {name: "abruzzi" ، العمر: 26} // تحديد وظيفة كائن الوظيفة العالمية ALERTNAME () {return this.name ؛ } // قم بتعيين سياق AlertName to Jack ، وهذا في هذا الوقت هو Jack Alert (AlertName.call (jack)) ؛ // قم بتعيين سياق التنبيه إلى Abruzzi ، وهذا في هذا الوقت هو Abruzzi Alert (AlertName.call (Abruzzi)) ؛الاقتباسات موضوع مثير للاهتمام نسبيا. على عكس اللغات الأخرى ، تشير المراجع في JavaScript دائمًا إلى الكائن النهائي ، وليس المرجع نفسه.
var obj = {} ؛ // كائن فارغ var ref = obj ؛ // Reference obj.name = "Objecta" ؛ تنبيه (المرجع) ؛ // المرجع ثم أضف سمة الاسم OBJ = ["واحد" ، "اثنين" ، "ثلاثة"] ؛ // OBJ يشير إلى كائن آخر (كائن صفيف) تنبيه (ref.name) ؛ // المرجع يشير أيضًا إلى تنبيه الكائن الأصلي (OBJ.Length) ؛ // 3 ALERT (REF.LENGTH) ؛OBJ هو مجرد إشارة إلى كائن مجهول ، لذلك المرجع لا يشير إليه.
يمكن أن يشير المرجع فقط إلى كائن معين. عندما يتغير الكائن المحدد ، المرجع أو المرجع إلى الكائن الأصلي ، بدلاً من الكائن الذي تم تغييره.
ما سبق هو المعلومات حول هذا المؤشر والمرجع في JavaScript الذي قدمه لك المحرر. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!