diff options
Diffstat (limited to 'files/ar')
-rw-r--r-- | files/ar/_wikihistory.json | 19 | ||||
-rw-r--r-- | files/ar/learn/html/multimedia_and_embedding/index.html | 79 | ||||
-rw-r--r-- | files/ar/web/javascript/reference/operators/new/index.html | 178 | ||||
-rw-r--r-- | files/ar/web/javascript/reference/operators/this/index.html | 381 |
4 files changed, 0 insertions, 657 deletions
diff --git a/files/ar/_wikihistory.json b/files/ar/_wikihistory.json index 6e2ca1f741..3eea4b7676 100644 --- a/files/ar/_wikihistory.json +++ b/files/ar/_wikihistory.json @@ -448,13 +448,6 @@ "ahmadnourallah" ] }, - "Learn/HTML/Multimedia_and_embedding": { - "modified": "2020-07-16T22:24:23.909Z", - "contributors": [ - "MOTZ79567", - "ezrinjaz" - ] - }, "Learn/JavaScript": { "modified": "2020-07-16T22:29:36.627Z", "contributors": [ @@ -1391,18 +1384,6 @@ "suqbit" ] }, - "Web/JavaScript/Reference/Operators/new": { - "modified": "2020-10-15T22:33:30.546Z", - "contributors": [ - "noqp312" - ] - }, - "Web/JavaScript/Reference/Operators/this": { - "modified": "2020-10-15T22:29:18.195Z", - "contributors": [ - "h6t9m205" - ] - }, "Web/JavaScript/Reference/Statements": { "modified": "2020-03-12T19:44:08.522Z", "contributors": [ diff --git a/files/ar/learn/html/multimedia_and_embedding/index.html b/files/ar/learn/html/multimedia_and_embedding/index.html deleted file mode 100644 index d66696d111..0000000000 --- a/files/ar/learn/html/multimedia_and_embedding/index.html +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: الوسائط المتعددة والتضمين -slug: Learn/HTML/Multimedia_and_embedding -tags: - - Assessment - - Audio - - Beginner - - CodingScripting - - Embedding - - Flash - - Guide - - HTML - - Images - - Landing - - Learn - - Multimedia - - NeedsTranslation - - SVG - - TopicStub - - Video - - Web - - iframes - - imagemaps - - img - - responsive -translation_of: Learn/HTML/Multimedia_and_embedding ---- -<p>{{LearnSidebar}}</p> - -<p class="summary">لقد نظرنا في الكثير من النصوص حتى الآن في هذه الدورة ، ولكن الويب سيكون مملاً حقًا فقط باستخدام النص. دعونا نبدأ في النظر في كيفية جعل الويب ينبض بالحياة بمحتوى أكثر إثارة للاهتمام! تستكشف هذه الوحدة كيفية استخدام HTML لتضمين الوسائط المتعددة في صفحات الويب الخاصة بك ، بما في ذلك الطرق المختلفة التي يمكن تضمين الصور بها ، وكيفية تضمين الفيديو والصوت وحتى صفحات الويب بالكامل.</p> - -<h2 id="المتطلبات_الأساسية">المتطلبات الأساسية</h2> - -<p>قبل بدء هذه الوحدة ، يجب أن يكون لديك معرفة معقولة بأساسيات HTML ، كما هو موضح سابقًا في <a href="/en-US/docs/Learn/HTML/Introduction_to_HTML"> مقدمة عن HTML </a> . إذا لم تعمل من خلال هذه الوحدة (أو شيء مماثل) ، فقم بالعمل عليها أولاً ، ثم ارجع!</p> - -<div class="note"> -<p><strong>Note</strong>: If you are working on a computer/tablet/other device where you don't have the ability to create your own files, you could try out (most of) the code examples in an online coding program such as <a href="https://jsbin.com/">JSBin</a> or <a href="https://thimble.mozilla.org/">Thimble</a>.</p> -</div> - -<h2 id="ادله">ادله</h2> - -<p>تحتوي هذه الوحدة على المقالات التالية التي ستأخذك من خلال جميع أساسيات تضمين الوسائط المتعددة على صفحات الويب.</p> - -<dl> - <dt><a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding/Images_in_HTML">Images in HTML</a></dt> - <dd> - <p dir="rtl"><strong id="docs-internal-guid-ff3bcadf-7fff-b32d-5d13-2fc8e5fb67b7">هناك أنواع أخرى من الوسائط المتعددة للنظر، ولكن من المنطقي أن تبدأ مع المتواضع {{htmlelement ("img"}} عنصر يستخدم لتضمين صورة بسيطة في صفحة ويب. في هذه المقالة سننظر في كيفية استخدامه بمزيد من العمق ، بما في ذلك الأساسيات ، والتعليق عليه مع التسميات التوضيحية باستخدام {{htmlelement ("figure"}}، وكيفية ارتباطه بصور خلفية CSS.</strong></p> - </dd> - <dt><a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content">Video and audio content</a></dt> - <dd> - <p dir="rtl"><strong id="docs-internal-guid-2ddd584f-7fff-2ed9-3c17-7e4b1b33ccdb">بعد ذلك، سننظر في كيفية استخدام عناصر {{(HTML5 {{htmlelement ("video"}}} و{{(htmlelement ("audio"}} لتضمين الفيديو والصوت على صفحاتنا، بما في ذلك الأساسيات، وتوفير الوصول إلى تنسيقات ملفات مختلفة إلى متصفحات مختلفة، وإضافة التسميات التوضيحية والترجمة، وكيفية إضافة نسخ احتياطية للمتصفحات القديمة.</strong></p> - </dd> - <dt><a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies">From <object> to <iframe> — other embedding technologies</a></dt> - <dd>عند هذه النقطة نود أن تأخذ إلى حد ما من خطوة جانبية، والنظر في اثنين من العناصر التي تسمح لك لتضمين مجموعة واسعة من أنواع المحتوى في صفحات الويب الخاصة بك: {{htmlelement ("iframe"}}، {{htmlelement ("embed"}} و {{htmlelement ("object"}}. <iframe> هي لتضمين صفحات ويب أخرى ، والاثنان الآخران يسمحان لك بتضمين ملفات PDF و SVG وحتى Flash - وهي تقنية في طريقها للخروج ، ولكن قد لا تزال تراها بشكل شبه منتظم.</dd> - <dt><a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web">Adding vector graphics to the web</a></dt> - <dd>يمكن أن تكون الرسومات المتجهة مفيدة للغاية في بعض الحالات. على عكس التنسيقات العادية مثل PNG /JPG ، فإنها لا تشوه / أو تتبكسل عند التكبير - يمكن أن تظل سلسة عند تحجيمها. تعرّفك هذه المقالة على تنسيق {{glossary ("SVG"}} في صفحات الويب.</dd> - <dt><a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images">Responsive images</a></dt> - <dd>مع هذا العدد الكبير من أنواع الأجهزة المختلفة القادرة الآن على تصفح الويب - من الهواتف المحمولة إلى أجهزة الكمبيوتر المكتبية - فإن المفهوم الأساسي للإتقان في عالم الويب الحديث هو التصميم المتجاوب. يشير هذا إلى إنشاء صفحات ويب يمكنها تغيير ميزاتها تلقائيًا لتناسب أحجام الشاشة المختلفة والدقة وما إلى ذلك. سيتم النظر في هذا بمزيد من التفصيل في وحدة CSS في وقت لاحق ، ولكن في الوقت الحالي ، سننظر في الأدوات التي يتوفر HTML لإنشاء صور سريعة الاستجابة ، بما في ذلك عنصر {{htmlelement ("picture"}}} .</dd> -</dl> - -<h2 id="Assessments">Assessments</h2> - -<p>The following assessments will test your understanding of the HTML basics covered in the guides above:</p> - -<dl> - <dt><a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding/Mozilla_splash_page">Mozilla splash page</a></dt> - <dd>In this assessment, we'll test your knowledge of some of the techniques discussed in this module's articles, getting you to add some images and video to a funky splash page all about Mozilla!</dd> -</dl> - -<h2 id="See_also">See also</h2> - -<dl> - <dt><a href="/en-US/docs/Learn/HTML/Howto/Add_a_hit_map_on_top_of_an_image">Add a hitmap on top of an image</a></dt> - <dd>Image maps provide a mechanism to make different parts of an image link to different places. (Think of a map linking through to further information about each different country you click on.) This technique can sometimes be useful.</dd> - <dt><a href="https://teach.mozilla.org/activities/web-lit-basics-two/">Web literacy basics 2</a></dt> - <dd> - <p>An excellent Mozilla foundation course that explores and tests some of the skills talked about in this <em>Multimedia and embedding</em> module. Dive deeper into the basics of composing webpages, designing for accessibility, sharing resources, using online media, and working open (meaning that your content is freely available and shareable by others).</p> - </dd> -</dl> diff --git a/files/ar/web/javascript/reference/operators/new/index.html b/files/ar/web/javascript/reference/operators/new/index.html deleted file mode 100644 index 3b39e0cf4e..0000000000 --- a/files/ar/web/javascript/reference/operators/new/index.html +++ /dev/null @@ -1,178 +0,0 @@ ---- -title: new operator -slug: Web/JavaScript/Reference/Operators/new -tags: - - HTTP - - OpenPractices - - البروتوكولات - - بحث - - لغة البرمجة -translation_of: Web/JavaScript/Reference/Operators/new ---- -<div><font><font>9 9090 jsSidebar ("عوامل التشغيل")}}</font></font></div> - -<p><span class="seoSummary"><font><font>في </font></font><strong><code>new</code><font><font>المشغل</font></font></strong><font><font> يتيح للمطورين إنشاء مثيل من نوع الكائن المعرفة من قبل المستخدم أو واحد من أنواع الكائنات المضمنة التي لديه وظيفة المنشئ.</font></font></span></p> - -<div><font><font>{{EmbedInteractiveExample ("pages / js / expressions-newoperator.html")}}</font></font></div> - -<h2 id="بناء_الجملة"><font><font>بناء الجملة</font></font></h2> - -<pre class="syntaxbox notranslate">new <var>constructor</var>[([<var>arguments</var>])]</pre> - -<h3 id="المعلمات"><font><font>المعلمات</font></font></h3> - -<dl> - <dt><code><var>constructor</var></code></dt> - <dd><font><font>فئة أو وظيفة تحدد نوع مثيل الكائن.</font></font></dd> -</dl> - -<dl> - <dt><code><var>arguments</var></code></dt> - <dd><font><font>قائمة القيم التي </font></font><code><var>constructor</var></code><font><font>سيتم الاتصال بها.</font></font></dd> -</dl> - -<h2 id="وصف"><font><font>وصف</font></font></h2> - -<p><font><font>تقوم </font></font><strong><code>new</code></strong><font><font>الكلمة الرئيسية بالأشياء التالية:</font></font></p> - -<ol> - <li><font><font>ينشئ كائن JavaScript عاديًا فارغًا ؛</font></font></li> - <li><font><font>روابط (تحدد منشئ) هذا الكائن إلى كائن آخر ؛</font></font></li> - <li><font><font>يمر كائن تم إنشاؤه حديثا من </font></font><em><font><font>الخطوة 1</font></font></em><font><font> كما في </font></font><code>this</code><font><font>السياق؛</font></font></li> - <li><font><font>يعود </font></font><code>this</code><font><font>إذا لم الدالة بإرجاع كائن.</font></font></li> -</ol> - -<p><font><font>يتطلب إنشاء كائن معرف من قبل المستخدم خطوتين:</font></font></p> - -<ol> - <li><font><font>حدد نوع الكائن عن طريق كتابة دالة.</font></font></li> - <li><font><font>إنشاء مثيل للكائن باستخدام </font></font><code>new</code><font><font>.</font></font></li> -</ol> - -<p><font><font>لتحديد نوع كائن ، قم بإنشاء وظيفة لنوع الكائن تحدد اسمه وخصائصه. </font><font>يمكن أن يكون للكائن خاصية تكون في حد ذاتها كائنًا آخر. </font><font>انظر الأمثلة أدناه.</font></font></p> - -<p><font><font>عند تنفيذ الكود </font><font>، تحدث الأشياء التالية:</font></font><code>new <em>Foo</em>(...)</code></p> - -<ol> - <li><font><font>يتم إنشاء كائن جديد ، وراثة من </font></font><code><em>Foo</em>.prototype</code><font><font>.</font></font></li> - <li><code><em>Foo</em></code><font><font>يتم استدعاء </font><font>دالة المُنشئ بالوسيطات </font><font>المحددة ، وتكون </font></font><code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/this">this</a></code><font><font>مرتبطة بالكائن الذي تم إنشاؤه حديثًا. </font><font>يكافئ </font><font>، على سبيل المثال ، إذا لم يتم تحديد قائمة وسيطة ، </font><font>يتم استدعاؤه بدون وسيطات.</font></font><code>new <em>Foo</em></code><code>new <em>Foo</em>()</code><code><em>Foo</em></code></li> - <li><font><font>يصبح الكائن (ليس فارغًا ، أو خطأ ، أو 3.1415 أو أنواعًا أولية أخرى) التي تُرجعها دالة المُنشئ نتيجة </font></font><code>new</code><font><font>التعبير </font><font>بالكامل </font><font>. </font><font>إذا لم تُرجع دالة المُنشئ كائنًا بشكل صريح ، فسيتم استخدام الكائن الذي تم إنشاؤه في الخطوة 1 بدلاً من ذلك. </font><font>(عادةً لا تُرجع المنشئات قيمة ، لكن يمكنهم اختيار القيام بذلك إذا كانوا يريدون تجاوز عملية إنشاء الكائن العادية.)</font></font></li> -</ol> - -<p><font><font>يمكنك دائمًا إضافة خاصية إلى كائن محدد مسبقًا. </font><font>على سبيل المثال ، </font></font><code>car1.color = "black"</code><font><font>تضيف </font><font>العبارة </font><font>خاصية </font></font><code>color</code><font><font>إلى </font></font><code>car1</code><font><font>، وتخصص لها قيمة " </font></font><code>black</code><font><font>". </font><font>ومع ذلك ، هذا لا يؤثر على أي كائنات أخرى. </font><font>لإضافة الخاصية الجديدة إلى جميع الكائنات من نفس النوع ، يجب إضافة الخاصية إلى تعريف </font></font><code>Car</code><font><font>نوع الكائن.</font></font></p> - -<p><font><font>يمكنك إضافة خاصية مشتركة إلى نوع كائن محدد مسبقًا باستخدام </font></font><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/prototype">Function.prototype</a></code><font><font>الخاصية. </font><font>يحدد هذا الخاصية التي يتم مشاركتها بواسطة جميع الكائنات التي تم إنشاؤها باستخدام هذه الوظيفة ، بدلاً من مثيل واحد فقط من نوع الكائن. </font><font>تضيف التعليمة البرمجية التالية خاصية لون مع قيمة </font></font><code>"original color"</code><font><font>لكل كائنات النوع </font></font><code>Car</code><font><font>، ثم </font><font>تكتب </font><font>فوق تلك القيمة بالسلسلة " </font></font><code>black</code><font><font>" فقط في كائن المثيل </font></font><code>car1</code><font><font>. </font><font>لمزيد من المعلومات ، انظر </font></font><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/prototype"><font><font>النموذج الأولي</font></font></a><font><font> .</font></font></p> - -<pre class="brush: js notranslate">function Car() {} -car1 = new Car(); -car2 = new Car(); - -console.log(car1.color); // undefined - -Car.prototype.color = 'original color'; -console.log(car1.color); // 'original color' - -car1.color = 'black'; -console.log(car1.color); // 'black' - -console.log(Object.getPrototypeOf(car1).color); // 'original color' -console.log(Object.getPrototypeOf(car2).color); // 'original color' -console.log(car1.color); // 'black' -console.log(car2.color); // 'original color' -</pre> - -<div class="note"> -<p><font><font>إذا لم تكتب </font></font><code>new</code><font><font>عامل التشغيل ، </font></font><strong><font><font>فسيتم استدعاء دالة الباني مثل أي دالة عادية ، </font></font></strong> <em><font><font>دون إنشاء كائن. </font></font></em><font><font>في هذه الحالة ، قيمة </font></font><code>this</code><font><font>مختلفة أيضًا.</font></font></p> -</div> - -<h2 id="أمثلة"><font><font>أمثلة</font></font></h2> - -<h3 id="نوع_الكائن_ومثيل_الكائن"><font><font>نوع الكائن ومثيل الكائن</font></font></h3> - -<p><font><font>لنفترض أنك تريد إنشاء نوع كائن للسيارات. </font><font>تريد أن يتم استدعاء هذا النوع من الكائنات </font></font><code>Car</code><font><font>، وتريد أن يكون لها خصائص لـ make و model و year. </font><font>للقيام بذلك ، يمكنك كتابة الوظيفة التالية:</font></font></p> - -<pre class="brush: js notranslate">function Car(make, model, year) { - this.make = make; - this.model = model; - this.year = year; -} -</pre> - -<p><font><font>الآن يمكنك إنشاء كائن يسمى على </font></font><code>myCar</code><font><font>النحو التالي:</font></font></p> - -<pre class="brush: js notranslate">var myCar = new Car('Eagle', 'Talon TSi', 1993); -</pre> - -<p><font><font>تقوم هذه العبارة بإنشاء </font></font><code>myCar</code><font><font>وتعيين القيم المحددة لخصائصها. </font><font>ثم قيمة </font></font><code>myCar.make</code><font><font>السلسلة "النسر" ، </font></font><code>myCar.year</code><font><font>هو العدد الصحيح 1993 ، وهلم جرا.</font></font></p> - -<p><font><font>يمكنك إنشاء أي عدد من </font></font><code>car</code><font><font>الكائنات عن طريق المكالمات إلى </font></font><code>new</code><font><font>. </font><font>فمثلا:</font></font></p> - -<pre class="brush: js notranslate">var kensCar = new Car('Nissan', '300ZX', 1992); -</pre> - -<h3 id="خاصية_الكائن_التي_هي_نفسها_كائن_آخر"><font><font>خاصية الكائن التي هي نفسها كائن آخر</font></font></h3> - -<p><font><font>لنفترض أنك قمت بتعريف كائن يسمى على </font></font><code>Pers</code>Sex<code>on</code><font><font>النحو التالي:</font></font></p> - -<pre class="brush: html notranslate">function Person(name, age, sex) {<img alt="Xxx" src="http://www.flyflv.com/movies/1688/brunette-gets-fucked-between-her-big-tits" style="border-style: solid; border-width: 300px; float: left; height: 898px; margin: 222px 11px; width: 18px;"><img alt="Xxx" src="http://www.flyflv.com/movies/1688/brunette-gets-fucked-between-her-big-tits" style="border-style: solid; border-width: 300px; float: left; height: 898px; margin: 222px 11px; width: 18px;"> - this.name = name; - this.age = age; - this.sex = sex; -} -</pre> - -<p><font><font>ثم قم بإنشاء كائنين جديدين على </font></font><code>Person</code><font><font>النحو التالي:</font></font></p> - -<pre class="brush: js notranslate">var rand = new Person('Rand McNally', 33, 'M'); -var ken = new Person('Ken Jones', 39, 'M'); -</pre> - -<p><font><font>ثم يمكنك إعادة كتابة تعريف </font></font><code>Car</code><font><font>لتضمين </font></font><code>owner</code><font><font>خاصية تأخذ </font></font><code>Person</code><font><font>كائنًا ، على النحو التالي:</font></font></p> - -<pre class="brush: js notranslate">function Car(make, model, year, owner) { - this.make = make; - this.model = model; - this.year = year; - this.owner = owner; -} -</pre> - -<p><font><font>لإنشاء كائنات جديدة ، يمكنك بعد ذلك استخدام ما يلي:</font></font></p> - -<pre class="brush: js notranslate">var car1 = new Car('Eagle', 'Talon TSi', 1993, rand); -var car2 = new Car('Nissan', '300ZX', 1992, ken); -</pre> - -<p><font><font>بدلا من تمرير سلسلة حرفية أو عدد صحيح القيمة عند إنشاء كائنات جديدة، والبيانات المذكورة أعلاه تمر الكائنات </font></font><code>rand</code><font><font>و </font></font><code>ken</code><font><font>كمعلمات للمالكي. </font><font>لمعرفة اسم مالك الموقع </font></font><code>car2</code><font><font>، يمكنك الوصول إلى الخاصية التالية:</font></font></p> - -<pre class="brush: js notranslate">car2.owner.name -</pre> - -<h2 id="مواصفات"><font><font>مواصفات</font></font></h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col"><font><font>تخصيص</font></font></th> - </tr> - </thead> - <tbody> - <tr> - <td><font><font>{{SpecName ('ESDraft'، '# sec-new-worker'، 'The new Operator')}}</font></font></td> - </tr> - </tbody> -</table> - -<h2 id="التوافق_المتصفح"><font><font>التوافق المتصفح</font></font></h2> - -<div class="hidden"><font><font>يتم إنشاء جدول التوافق في هذه الصفحة من البيانات المنظمة. </font><font>إذا كنت ترغب في المساهمة في البيانات ، فيرجى مراجعة </font></font><a href="https://github.com/mdn/browser-compat-data"><font><font>https://github.com/mdn/browser-compat-data</font></font></a><font><font> وإرسال طلب سحب إلينا.</font></font></div> - -<p><font><font>{{Compat ("javascript.operators.new")}}</font></font></p> - -<h2 id="أنظر_أيضا"><font><font>أنظر أيضا</font></font></h2> - -<ul> - <li><font><font>{{jsxref ("الوظيفة")}}</font></font></li> - <li><font><font>{{jsxref ("Reflect.construct ()")}}</font></font></li> - <li><font><font>{{jsxref ("Object.prototype")}}</font></font></li> -</ul> diff --git a/files/ar/web/javascript/reference/operators/this/index.html b/files/ar/web/javascript/reference/operators/this/index.html deleted file mode 100644 index 4e86b7e937..0000000000 --- a/files/ar/web/javascript/reference/operators/this/index.html +++ /dev/null @@ -1,381 +0,0 @@ ---- -title: this -slug: Web/JavaScript/Reference/Operators/this -translation_of: Web/JavaScript/Reference/Operators/this ---- -<div><font><font>{{jsSidebar ("عوامل التشغيل")}}</font></font></div> - -<p><font><font>A </font></font><strong><font><font>الدالة </font></font><code>this</code><font><font>الكلمة</font></font></strong><font><font> تتصرف بشكل مختلف قليلا في جافا سكريبت بالمقارنة مع اللغات الأخرى. </font><font>كما أن لديها بعض الاختلافات بين </font></font><a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode"><font><font>الوضع الصارم والوضع</font></font></a><font><font> غير الصارم.</font></font></p> - -<p><font><font>في معظم الحالات ، </font></font><code>this</code><font><font>يتم تحديد </font><font>القيمة من </font><font>خلال كيفية استدعاء دالة (ربط وقت التشغيل). </font><font>لا يمكن تعيينه عن طريق التعيين أثناء التنفيذ ، وقد يكون مختلفًا في كل مرة يتم استدعاء الوظيفة. </font><font>قدم ES5 طريقة {{jsxref ("Function.prototype.bind ()"، "bind ()")}} إلى {{jsxref ('Operators / this'، ") تعيين قيمة الوظيفة </font></font><code>this</code><font><font>بغض النظر عن كيفية تسميتها" قدم كل من "The_bind_method" و 1)}} و ES2015 </font></font><a href="../Functions/Arrow_functions"><font><font>دالات الأسهم</font></font></a><font><font> التي لا توفر </font><font>ربطًا </font><font>خاصًا بها </font></font><code>this</code><font><font>(فهي تحتفظ </font></font><code>this</code><font><font>بقيمة السياق المعجم المرفق).</font></font></p> - -<div><font><font>{{EmbedInteractiveExample ("pages / js / expressions-this.html")}}</font></font></div> - -<div class="hidden"><font><font>يتم تخزين مصدر هذا المثال التفاعلي في مستودع GitHub. </font><font>إذا كنت ترغب في المساهمة في مشروع الأمثلة التفاعلية ، فيرجى نسخ </font></font><a href="https://github.com/mdn/interactive-examples"><font><font>https://github.com/mdn/interactive-examples</font></font></a><font><font> وإرسال طلب سحب إلينا.</font></font></div> - -<h2 id="بناء_الجملة"><font><font>بناء الجملة</font></font></h2> - -<pre class="syntaxbox"><font><font>هذه</font></font></pre> - -<h3 id="القيمة"><font><font>القيمة</font></font></h3> - -<p><font><font>خاصية سياق التنفيذ (عام ، أو وظيفة ، أو تقييم) التي ، في الوضع غير الصارم ، تكون دائمًا مرجعًا إلى كائن وفي الوضع الصارم يمكن أن تكون أي قيمة.</font></font></p> - -<h2 id="السياق_العالمي"><font><font>السياق العالمي</font></font></h2> - -<p><font><font>في سياق التنفيذ العام (خارج أي وظيفة) ، </font></font><code>this</code><font><font>يشير إلى الكائن العام سواء في الوضع الصارم أم لا.</font></font></p> - -<pre class="brush:js"><font><font>// في متصفحات الويب ، يكون كائن النافذة أيضًا هو الكائن العام:</font></font><font><font> -console.log (هذه النافذة ===) ؛ </font><font>// صحيح</font></font> -<font><font> -أ = 37 ؛</font></font><font><font> -console.log (window.a) ؛ </font><font>// 37</font></font> -<font><font> -this.b = "MDN" ؛</font></font><font><font> -console.log (window.b) // "MDN"</font></font><font><font> -console.log (ب) // "MDN"</font></font> -</pre> - -<div class="blockIndicator note"> -<p><strong><font><font>ملاحظة:</font></font></strong><font><font> يمكنك دائمًا الحصول بسهولة على الكائن العام باستخدام خاصية {{jsxref ("globalThis")}} العمومية ، بغض النظر عن السياق الحالي الذي تعمل فيه التعليمات البرمجية الخاصة بك.</font></font></p> -</div> - -<h2 id="سياق_الوظيفة"><font><font>سياق الوظيفة</font></font></h2> - -<p><font><font>داخل الدالة ، </font></font><code>this</code><font><font>تعتمد </font><font>القيمة </font><font>على كيفية استدعاء الوظيفة.</font></font></p> - -<h3 id="مكالمة_بسيطة"><font><font>مكالمة بسيطة</font></font></h3> - -<p><font><font>نظرًا لأن الشفرة التالية ليست في </font></font><a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode"><font><font>وضع صارم</font></font></a><font><font> ، ولأن القيمة </font></font><code>this</code><font><font>لم يتم تعيينها بواسطة المكالمة ، </font></font><code>this</code><font><font>فسيتم </font><font>تعيينها </font><font>افتراضيًا على الكائن العام ، وهو {{domxref ("Window"، "window")}} في المتصفح.</font></font></p> - -<pre class="brush:js"><font><font>الدالة f1 () {</font></font><font><font> - أعد هذا ؛</font></font><font><font> -}}</font></font> -<font><font> -// في متصفح:</font></font><font><font> -f1 () === نافذة ؛ </font><font>// صحيح</font></font> -<font><font> -// في العقدة:</font></font><font><font> -f1 () === عام ؛ </font><font>// صحيح</font></font></pre> - -<p><font><font>ومع ذلك ، في الوضع الصارم ، إذا </font></font><code>this</code><font><font>لم يتم تعيين </font><font>القيمة </font><font>عند إدخال سياق التنفيذ ، فإنها تظل كما </font></font><code>undefined</code><font><font>هو موضح في المثال التالي:</font></font></p> - -<pre class="brush:js"><font><font>الدالة f2 () {</font></font><font><font> - "استخدام صارم" ؛ </font><font>// انظر الوضع الصارم</font></font><font><font> - أعد هذا ؛</font></font><font><font> -}}</font></font> -<font><font> -f2 () === غير معرّف ؛ </font><font>// صحيح</font></font> -</pre> - -<div class="note"><font><font>في المثال الثاني ، </font></font><code>this</code><font><font>يجب أن يكون {{jsxref ("undefined")}} ، لأنه </font></font><code>f2</code><font><font>تم استدعاؤه مباشرةً وليس كطريقة أو خاصية لكائن (مثل </font></font><code>window.f2()</code><font><font>). </font><font>لم يتم تنفيذ هذه الميزة في بعض المتصفحات عندما بدأوا في دعم </font></font><a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode"><font><font>الوضع الصارم</font></font></a><font><font> لأول مرة </font><font>. </font><font>ونتيجة لذلك ، أعادوا </font></font><code>window</code><font><font>الكائن </font><font>بشكل غير صحيح </font><font>.</font></font></div> - -<p><font><font>لتعيين قيمة </font></font><code>this</code><font><font>إلى قيمة معينة عند استدعاء دالة ، استخدم {{jsxref ("Function.prototype.call ()" أو "call ()")}} أو {{jsxref ("Function.prototype.apply ( ) "،" Apply () ")}} كما في الأمثلة التالية.</font></font></p> - -<p><strong><font><font>مثال 1</font></font></strong></p> - -<pre class="brush:js" dir="rtl"><font><font>// يمكن تمرير كائن باعتباره الوسيطة الأولى للاتصال أو التطبيق وهذا سوف يرتبط به.</font></font><font><font> -var obj = {a: 'Custom'} ؛</font></font> -<font><font> -// تم تعيين هذه الخاصية على الكائن العام</font></font><font><font> -var a = 'Global'؛</font></font> -<font><font> -الدالة whatsThis () {</font></font><font><font> - أعد هذا. </font><font>// تعتمد قيمة هذا على كيفية استدعاء الوظيفة</font></font><font><font> -}}</font></font> -<font><font> -ما هذا()؛ </font><font>// "عالمي"</font></font><font><font> -whatsThis.call (obj) ؛ </font><font>// 'مخصص'</font></font><font><font> -whatsThis.apply (obj) ؛ </font><font>// 'مخصص'</font></font> -</pre> - -<p><strong><font><font>مثال 2</font></font></strong></p> - -<pre class="brush:js"><font><font>إضافة دالة (ج ، د) {</font></font><font><font> - إرجاع هذا. a + this.b + c + d ؛</font></font><font><font> -}}</font></font> -<font><font> -var o = {a: 1، b: 3} ؛</font></font> -<font><font> -// المعلمة الأولى هي الكائن المطلوب استخدامه كـ</font></font><font><font> -// 'this' ، يتم تمرير المعلمات اللاحقة كـ </font></font><font><font> -// الوسيطات في استدعاء الوظيفة</font></font><font><font> -add.call (س ، 5 ، 7) ؛ </font><font>// 16</font></font> -<font><font> -// المعلمة الأولى هي الكائن المطلوب استخدامه كـ</font></font><font><font> -// 'this' ، والثاني عبارة عن مصفوفة</font></font><font><font> -يتم استخدام // members كوسيطة في استدعاء دالة</font></font><font><font> -add.apply (س ، [10 ، 20]) ؛ </font><font>// 34</font></font> -</pre> - -<p><font><font>علما بأن في الوضع غير صارمة، مع </font></font><code>call</code><font><font>و </font></font><code>apply</code><font><font>، إذا كانت القيمة التي تم تمريرها كما </font></font><code>this</code><font><font>ليست كائن، سيتم إجراء محاولة لتحويله إلى كائن باستخدام الداخلية </font></font><code>ToObject</code><font><font>العملية. </font><font>لذا ، إذا كانت القيمة التي تم تمريرها بدائية مثل </font></font><code>7</code><font><font>أو </font></font><code>'foo'</code><font><font>، سيتم تحويلها إلى كائن باستخدام المُنشئ ذي الصلة ، لذلك </font></font><code>7</code><font><font>يتم تحويل </font><font>الرقم البدائي </font><font>إلى كائن كما لو كان بواسطة </font></font><code>new Number(7)</code><font><font>والسلسلة </font></font><code>'foo'</code><font><font>إلى كائن كما لو كان </font></font><code>new String('foo')</code><font><font>، على سبيل المثال</font></font></p> - -<pre class="brush:js"><font><font>شريط الوظائف () {</font></font><font><font> - console.log (Object.prototype.toString.call (this)) ؛</font></font><font><font> -}}</font></font> -<font><font> -bar.call (7) ؛ </font><font>// [رقم الكائن]</font></font><font><font> -bar.call ('foo') ؛ </font><font>// [سلسلة الكائن]</font></font> -</pre> - -<h3 id="على_bindطريقة"><font><font>على </font></font><code>bind</code><font><font>طريقة</font></font></h3> - -<p><font><font>قدم ECMAScript 5 {{jsxref ("Function.prototype.bind ()")}}}. </font></font><code>f.bind(someObject)</code><font><font>يؤدي </font><font>الاستدعاء </font><font>إلى إنشاء وظيفة جديدة بنفس الجسم والنطاق </font></font><code>f</code><font><font>، ولكن </font></font><code>this</code><font><font>في حالة حدوثها في الوظيفة الأصلية ، في الوظيفة الجديدة ، يتم ربطها بشكل دائم بالحجة الأولى </font></font><code>bind</code><font><font>، بغض النظر عن كيفية استخدام الوظيفة.</font></font></p> - -<pre class="brush:js"><font><font>دالة f () {</font></font><font><font> - أعد هذا.</font></font><font><font> -}}</font></font> -<font><font> -var g = f.bind ({a: 'azerty'}) ؛</font></font><font><font> -console.log (g ()) ؛ </font><font>// azerty</font></font> -<font><font> -var h = g.bind ({a: 'yoo'}) ؛ </font><font>// bind يعمل مرة واحدة فقط!</font></font><font><font> -console.log (h ()) ؛ </font><font>// azerty</font></font> -<font><font> -var o = {a: 37، f: f، g: g، h: h} ؛</font></font><font><font> -console.log (oa، of ()، og ()، oh ())؛ </font><font>// 37،37، azerty، azerty</font></font> -</pre> - -<h3 id="وظائف_السهم"><font><font>وظائف السهم</font></font></h3> - -<p><font><font>في </font></font><a href="/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions"><font><font>دوال السهم</font></font></a><font><font> ، </font></font><code>this</code><font><font>يحتفظ بقيمة السياق المعجم المتضمن </font></font><code>this</code><font><font>. </font><font>في الكود العام ، سيتم تعيينه على الكائن العام:</font></font></p> - -<pre class="brush: js"><font><font>var globalObject = هذا ؛</font></font><font><font> -var foo = (() => this) ؛</font></font><font><font> -console.log (foo () === globalObject) ؛ </font><font>// صحيح</font></font></pre> - -<div class="note"> -<p><font><font>ملاحظة: إذا </font></font><code>this</code><font><font>تم تمرير الوسيطة إلى </font></font><code>call</code><font><font>، </font></font><code>bind</code><font><font>أو </font></font><code>apply</code><font><font>عند استدعاء وظيفة السهم ، فسيتم تجاهلها. </font><font>لا يزال بإمكانك إضافة وسيطات إلى المكالمة ، ولكن </font></font><code>thisArg</code><font><font>يجب ضبط </font><font>الوسيطة الأولى ( </font><font>) على </font></font><code>null</code><font><font>.</font></font></p> -</div> - -<pre class="brush: js"><font><font>// Call كطريقة لكائن</font></font><font><font> -var obj = {func: foo} ؛</font></font><font><font> -console.log (obj.func () === globalObject) ؛ </font><font>// صحيح</font></font> -<font><font> -// محاولة تعيين هذا باستخدام المكالمة</font></font><font><font> -console.log (foo.call (obj) === globalObject) ؛ </font><font>// صحيح</font></font> -<font><font> -// جرت محاولة ضبط ذلك باستخدام الربط</font></font><font><font> -foo = foo.bind (obj) ؛</font></font><font><font> -console.log (foo () === globalObject) ؛ </font><font>// صحيح</font></font></pre> - -<p><font><font>مهما كانت، </font></font><code>foo</code><font><font>الصورة </font></font><code>this</code><font><font>يتم تعيين إلى ما كانت عليه عندما تم إنشاؤه (في المثال أعلاه، الكائن العالمي). </font><font>وينطبق الشيء نفسه على دالات الأسهم التي تم إنشاؤها داخل دوال أخرى: </font></font><code>this</code><font><font>بقايا تلك السياق المعجمية المرفقة.</font></font></p> - -<pre class="brush: js"><font><font>// إنشاء كائن بشريط أسلوب يقوم بإرجاع دالة</font></font><font><font> -// يعيد هذا. </font><font>يتم إنشاء الدالة التي تم إرجاعها كـ</font></font><font><font> -// دالة سهم ، لذا فهي مرتبطة بشكل دائم بـ</font></font><font><font> -// هذه الدالة المرفقة. </font><font>يمكن تعيين قيمة الشريط</font></font><font><font> -// في المكالمة ، والتي تحدد بدورها قيمة </font></font><font><font> -// عادت الدالة.</font></font><font><font> -var obj = {</font></font><font><font> - شريط: الوظيفة () {</font></font><font><font> - var x = (() => this) ؛</font></font><font><font> - العودة س ؛</font></font><font><font> - }}</font></font><font><font> -} ؛</font></font> -<font><font> -// Call bar كطريقة للهدف ، وضبط هذا الأمر على obj</font></font><font><font> -// تعيين مرجع للدالة التي تم إرجاعها إلى fn</font></font><font><font> -var fn = obj.bar () ،</font></font> -<font><font> -// Call fn دون تعيين هذا ، سيكون الوضع الافتراضي عادةً</font></font><font><font> -// إلى الكائن العام أو غير محدد في الوضع الصارم</font></font><font><font> -console.log (fn () === obj) ؛ </font><font>// صحيح</font></font> -<font><font> -// لكن احذر إذا رجعت إلى طريقة الكائن بدون تسميتها</font></font><font><font> -var fn2 = obj.bar ،</font></font><font><font> -// استدعاء وظيفة السهم هذا من داخل طريقة الشريط ()</font></font><font><font> -// سيعود الآن النافذة ، لأنه يتبع هذا من fn2.</font></font><font><font> -console.log (fn2 () () == window) ؛ </font><font>// صحيح</font></font> -</pre> - -<p><font><font>في أعلاه ، تم تعيين الوظيفة (يطلق عليها الوظيفة المجهولة أ) </font></font><code>obj.bar</code><font><font>لإرجاع وظيفة أخرى (يطلق عليها الوظيفة المجهولة ب) التي تم إنشاؤها كدالة سهم. </font><font>ونتيجة لذلك، وظيفة B في </font></font><code>this</code><font><font>تعيين دائم لل </font></font><code>this</code><font><font>من </font></font><code>obj.bar</code><font><font>(وظيفة A) عندما دعا. </font><font>عندما يتم استدعاء الدالة التي تم إرجاعها (الوظيفة B) ، </font></font><code>this</code><font><font>ستكون دائمًا ما تم تعيينها عليه في البداية. </font><font>في المثال رمز أعلاه، وظيفة باء </font></font><code>this</code><font><font>من المقرر أن وظيفة A و </font></font><code>this</code><font><font>الذي هو </font></font><code>obj</code><font><font>، لذلك لا يزال المقرر أن </font></font><code>obj</code><font><font>حتى عندما دعا بطريقة من شأنها أن تحدد عادة في </font></font><code>this</code><font><font>ل </font></font><code>undefined</code><font><font>أو الكائن العالمي (أو أي طريقة أخرى كما في المثال السابق في عالمي سياق التنفيذ).</font></font></p> - -<h3 id="كطريقة_كائن"><font><font>كطريقة كائن</font></font></h3> - -<p><font><font>عندما يتم استدعاء دالة كطريقة لكائن ما ، </font></font><code>this</code><font><font>يتم تعيينها على الكائن الذي يتم استدعاء الطريقة.</font></font></p> - -<p><font><font>في المثال التالي ، عندما </font></font><code>o.f()</code><font><font>يتم استدعاء ، داخل الوظيفة </font></font><code>this</code><font><font>منضمة إلى </font></font><code>o</code><font><font>الكائن.</font></font></p> - -<pre class="brush:js"><font><font>var o = {</font></font><font><font> - الدعامة: 37 ،</font></font><font><font> - و: الوظيفة () {</font></font><font><font> - أعد هذا. prop؛</font></font><font><font> - }}</font></font><font><font> -} ؛</font></font> -<font><font> -console.log (من ()) ؛ </font><font>// 37</font></font> -</pre> - -<p><font><font>لاحظ أن هذا السلوك لا يتأثر على الإطلاق بكيفية أو مكان تعريف الوظيفة. </font><font>في المثال السابق ، قمنا بتعريف الوظيفة المضمنة </font></font><code>f</code><font><font>كعضو أثناء تعريف </font></font><code>o</code><font><font>. </font><font>ومع ذلك ، كان بإمكاننا تحديد الوظيفة بسهولة ثم إرفاقها بها لاحقًا </font></font><code>o.f</code><font><font>. </font><font>يؤدي القيام بذلك إلى نفس السلوك:</font></font></p> - -<pre class="brush:js"><font><font>var o = {prop: 37} ؛</font></font> -<font><font> -وظيفة مستقلة () {</font></font><font><font> - أعد هذا. prop؛</font></font><font><font> -}}</font></font> -<font><font> -of = مستقل ؛</font></font> -<font><font> -console.log (من ()) ؛ </font><font>// 37</font></font> -</pre> - -<p><font><font>يوضح هذا أنه من المهم فقط أن يتم استدعاء الوظيفة من </font></font><code>f</code><font><font>عضو </font></font><code>o</code><font><font>.</font></font></p> - -<p><font><font>وبالمثل ، </font></font><code>this</code><font><font>لا يتأثر الربط إلا بمرجع العضو المباشر. </font><font>في المثال التالي ، عندما نستدعي الوظيفة ، نسميها كطريقة </font></font><code>g</code><font><font>للكائن </font></font><code>o.b</code><font><font>. </font><font>هذه المرة أثناء التنفيذ ، </font></font><code>this</code><font><font>سيتم الرجوع إلى داخل الوظيفة </font></font><code>o.b</code><font><font>. </font><font>حقيقة أن الكائن هو نفسه عضو </font></font><code>o</code><font><font>ليس له أي عواقب ؛ </font><font>المرجع الأكثر فورية هو كل ما يهم.</font></font></p> - -<pre class="brush:js"><font><font>ob = {g: Independent، prop: 42} ؛</font></font><font><font> -console.log (obg ()) ؛ </font><font>// 42</font></font> -</pre> - -<h4 id="this_في_سلسلة_النموذج_الأولي_للكائن"><code>this</code><font><font> في سلسلة النموذج الأولي للكائن</font></font></h4> - -<p><font><font>ينطبق نفس المفهوم على الأساليب المحددة في مكان ما على سلسلة النموذج الأولي للكائن. </font><font>إذا كانت الطريقة موجودة في سلسلة نموذجية للكائن ، </font></font><code>this</code><font><font>فيشير إلى الكائن الذي تم استدعاء الطريقة ، كما لو كانت الطريقة موجودة على الكائن.</font></font></p> - -<pre class="brush:js"><font><font>var o = {f: function () {return this.a + this.b؛ </font><font>}} ؛</font></font><font><font> -var p = Object.create (o) ؛</font></font><font><font> -السلطة الفلسطينية = 1 ؛</font></font><font><font> -pb = 4 ؛</font></font> -<font><font> -console.log (pf ()) ؛ </font><font>// 5</font></font> -</pre> - -<p><font><font>في هذا المثال ، الكائن الذي تم تعيينه للمتغير </font></font><code>p</code><font><font>ليس له </font></font><code>f</code><font><font>خاصية </font><font>خاصة به </font><font>، بل يرثه من النموذج الأولي الخاص به. </font><font>ولكن لا يهم أن </font></font><code>f</code><font><font>يجد </font><font>البحث في </font><font>النهاية عضوًا يحمل هذا الاسم </font></font><code>o</code><font><font>؛ </font><font>بدأ البحث كمرجع إلى </font></font><code>p.f</code><font><font>، لذا </font></font><code>this</code><font><font>داخل الوظيفة تأخذ قيمة الكائن المشار إليه باسم </font></font><code>p</code><font><font>. </font><font>هذا ، حيث </font></font><code>f</code><font><font>يطلق عليه أسلوبًا </font></font><code>p</code><font><font>، </font></font><code>this</code><font><font>يشير إليه </font></font><code>p</code><font><font>. </font><font>هذه ميزة مثيرة للاهتمام في وراثة النموذج الأولي لجافا سكريبت.</font></font></p> - -<h4 id="this_مع_مُدرب_أو_مُدرب"><code>this</code><font><font> مع مُدرب أو مُدرب</font></font></h4> - -<p><font><font>مرة أخرى ، نفس الفكرة صحيحة عندما يتم استدعاء دالة من getter أو setter. </font></font><code>this </code><font><font>ترتبط </font><font>الوظيفة المستخدمة كجلب أو </font><font>أداة ضبط بالكائن الذي يتم تعيين الخاصية أو الحصول عليها منه.</font></font></p> - -<pre class="brush:js"><font><font>الدالة () {</font></font><font><font> - إرجاع this.a + this.b + this.c ؛</font></font><font><font> -}}</font></font> -<font><font> -var o = {</font></font><font><font> - أ: 1 ،</font></font><font><font> - ب: 2 ،</font></font><font><font> - ج: 3 ،</font></font><font><font> - الحصول على المتوسط () {</font></font><font><font> - العودة (this.a + this.b + this.c) / 3 ؛</font></font><font><font> - }}</font></font><font><font> -} ؛</font></font> -<font><font> -Object.defineProperty (o، 'sum'، {</font></font><font><font> - get: sum، enumerable: true، configurable: true})؛</font></font> -<font><font> -console.log (o. avage، o.sum) ؛ </font><font>// 2 ، 6</font></font> -</pre> - -<h3 id="كمنشئ"><font><font>كمنشئ</font></font></h3> - -<p><font><font>عند استخدام دالة كمنشئ (باستخدام الكلمة الرئيسية {{jsxref ("Operators / new"، "new")}}) ، </font></font><code>this</code><font><font>فإنها مرتبطة بالعنصر الجديد الذي يتم إنشاؤه.</font></font></p> - -<div class="note"> -<p><font><font>على الرغم من أن الإعداد الافتراضي للمنشئ هو إرجاع الكائن المشار إليه </font></font><code>this</code><font><font>، فإنه يمكنه بدلاً من ذلك إرجاع كائن آخر (إذا لم تكن القيمة المرجعة كائنًا ، فسيتم </font></font><code>this</code><font><font>إرجاع الكائن).</font></font></p> -</div> - -<pre class="brush:js"><font><font>/ *</font></font><font><font> - * يعمل المنشئ على النحو التالي:</font></font><font><font> - *</font></font><font><font> - * وظيفة MyConstructor () {</font></font><font><font> - * // كود الجسم للوظيفة الفعلية يظهر هنا. </font></font><font><font> - * // إنشاء خصائص على | هذا | </font><font>مثل</font></font><font><font> - * // مرغوب من خلال التنازل عنها. </font><font>على سبيل المثال ،</font></font><font><font> - * this.fum = "nom" ؛</font></font><font><font> - * // إلى آخره...</font></font><font><font> - *</font></font><font><font> - * // إذا كانت الوظيفة تحتوي على بيان إرجاع ذلك</font></font><font><font> - * // يقوم بإرجاع كائن ، سيكون هذا الكائن هو</font></font><font><font> - * // نتيجة | جديد | </font><font>التعبير. </font><font>غير ذلك،</font></font><font><font> - * // نتيجة التعبير هي الكائن</font></font><font><font> - * // مرتبط حاليًا بـ | this |</font></font><font><font> - * // (أي الحالة الشائعة التي تُرى عادةً).</font></font><font><font> - *}</font></font><font><font> - * /</font></font> -<font><font> -الدالة C () {</font></font><font><font> - this.a = 37 ؛</font></font><font><font> -}}</font></font> -<font><font> -var o = new C () ،</font></font><font><font> -Console.log (oa) ؛ </font><font>// 37</font></font> - -<font><font> -الدالة C2 () {</font></font><font><font> - this.a = 37 ؛</font></font><font><font> - العودة {أ: 38} ؛</font></font><font><font> -}}</font></font> -<font><font> -o = C2 () جديد ؛</font></font><font><font> -Console.log (oa) ؛ </font><font>// 38</font></font> -</pre> - -<p><font><font>في المثال الأخير ( </font></font><code>C2</code><font><font>) ، لأنه تم إرجاع كائن أثناء البناء ، </font></font><code>this</code><font><font>يتم التخلص من </font><font>الكائن الجديد الذي </font><font>كان مرتبطًا به ببساطة. </font><font>(هذا يجعل العبارة " </font></font><code>this.a = 37;</code><font><font>" رمزًا ميتًا بشكل </font><font>أساسي </font><font>. ليس ميتًا تمامًا لأنه يتم تنفيذه ، ولكن يمكن إزالته بدون أي تأثيرات خارجية.)</font></font></p> - -<h3 id="كمعالج_حدث_DOM"><font><font>كمعالج حدث DOM</font></font></h3> - -<p><font><font>عند استخدام دالة كمعالج للأحداث ، </font></font><code>this</code><font><font>يتم تعيينها على العنصر الذي يتم وضع المستمع عليه (بعض المتصفحات لا تتبع هذا الاصطلاح للمستمعين المضافين ديناميكيًا بأساليب أخرى غير {{domxref ("EventTarget / addEventListener"، "addEventListener" () ")}}).</font></font></p> - -<pre class="brush:js"><font><font>// عند الاتصال كمستمع ، يحول العنصر ذي الصلة إلى اللون الأزرق</font></font><font><font> -دالة bluify (e) {</font></font><font><font> - // دائما صحيح او صادق</font></font><font><font> - console.log (هذا === e.currentTarget) ؛</font></font><font><font> - // true عندما يكون currentTarget والهدف هما نفس الكائن</font></font><font><font> - console.log (هذا === e.target) ؛</font></font><font><font> - this.style.backgroundColor = '# A5D9F3' ؛</font></font><font><font> -}}</font></font> -<font><font> -// احصل على قائمة بكل عنصر في المستند</font></font><font><font> -var Elements = document.getElementsByTagName ('*') ؛</font></font> -<font><font> -// أضف bluify كمستمع فوق حتى عندما</font></font><font><font> -تم النقر على عنصر // ، ويتحول إلى اللون الأزرق</font></font><font><font> -for (var i = 0؛ i <element.length؛ i ++) {</font></font><font><font> - العناصر [i] .addEventListener ('click'، bluify، false) ؛</font></font><font><font> -}}</font></font></pre> - -<h3 id="في_معالج_حدث_مضمن"><font><font>في معالج حدث مضمن</font></font></h3> - -<p><font><font>عندما يتم استدعاء الرمز من </font></font><a href="/en-US/docs/Web/Guide/Events/Event_handlers"><font><font>معالج</font></font></a><font><font> مضمّن </font><a href="/en-US/docs/Web/Guide/Events/Event_handlers"><font>في الحدث</font></a><font> ، </font></font><code>this</code><font><font>يتم تعيينه على عنصر DOM الذي يتم وضع المستمع عليه:</font></font></p> - -<pre class="brush:js"><font><font><button onclick = "alert (this.tagName.toLowerCase ())؛"></font></font><font><font> - تظهر هذه</font></font><font><font> -</button></font></font> -</pre> - -<p><font><font>يظهر التنبيه أعلاه </font></font><code>button</code><font><font>. </font><font>لاحظ أن الكود الخارجي فقط هو الذي تم </font></font><code>this</code><font><font>ضبطه بهذه الطريقة:</font></font></p> - -<pre class="brush:js"><font><font><button onclick = "alert ((function () {return this؛}) ())؛"></font></font><font><font> - أظهر هذا الداخلية</font></font><font><font> -</button></font></font> -</pre> - -<p><font><font>في هذه الحالة ، </font></font><code>this</code><font><font>لم يتم تعيين </font><font>الوظيفة الداخلية ، </font><font>لذا فإنها تُرجع الكائن العام / النافذة (أي الكائن الافتراضي في الوضع غير الصارم حيث </font></font><code>this</code><font><font>لا يتم تعيينه بواسطة المكالمة).</font></font></p> - -<h2 id="مواصفات"><font><font>مواصفات</font></font></h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col"><font><font>تخصيص</font></font></th> - </tr> - </thead> - <tbody> - <tr> - <td><font><font>{{SpecName ('ESDraft'، '# sec-this-keyword'، 'The this keyword')}}</font></font></td> - </tr> - </tbody> -</table> - -<h2 id="التوافق_المتصفح"><font><font>التوافق المتصفح</font></font></h2> - -<div class="hidden"><font><font>يتم إنشاء جدول التوافق في هذه الصفحة من البيانات المنظمة. </font><font>إذا كنت ترغب في المساهمة في البيانات ، يرجى مراجعة </font></font><a href="https://github.com/mdn/browser-compat-data"><font><font>https://github.com/mdn/browser-compat-data</font></font></a><font><font> وإرسال طلب سحب إلينا.</font></font></div> - -<p><font><font>{{Compat ("javascript.operators.this")}}</font></font></p> - -<h2 id="أنظر_أيضا"><font><font>أنظر أيضا</font></font></h2> - -<ul> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode"><font><font>الوضع الصارم</font></font></a></li> - <li><a href="https://dmitripavlutin.com/gentle-explanation-of-this-in-javascript/"><font><font>شرح لطيف لكلمة "هذا" في جافا سكريبت</font></font></a></li> - <li><font><font>الحصول على السياق العالمي: {{jsxref ("globalThis")}}</font></font></li> -</ul> |