aboutsummaryrefslogtreecommitdiff
path: root/files/ar/web/javascript
diff options
context:
space:
mode:
authorFlorian Merz <me@fiji-flo.de>2021-02-12 17:36:30 +0100
committerFlorian Merz <me@fiji-flo.de>2021-02-12 17:36:30 +0100
commit296bb7859bcc5436d18653e168054c6e39030cd2 (patch)
treecccc163b22a14e310cab7a72cf956ac353472732 /files/ar/web/javascript
parentc10e96cb350f2f9fbd51164634dd6aeb5bfbbda9 (diff)
downloadtranslated-content-296bb7859bcc5436d18653e168054c6e39030cd2.tar.gz
translated-content-296bb7859bcc5436d18653e168054c6e39030cd2.tar.bz2
translated-content-296bb7859bcc5436d18653e168054c6e39030cd2.zip
remove "unfixable" documents
Diffstat (limited to 'files/ar/web/javascript')
-rw-r--r--files/ar/web/javascript/reference/operators/new/index.html178
-rw-r--r--files/ar/web/javascript/reference/operators/this/index.html381
2 files changed, 0 insertions, 559 deletions
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 = (() =&gt; 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 = (() =&gt; 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 &lt;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>&lt;button onclick = "alert (this.tagName.toLowerCase ())؛"&gt;</font></font><font><font>
- تظهر هذه</font></font><font><font>
-&lt;/button&gt;</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>&lt;button onclick = "alert ((function () {return this؛}) ())؛"&gt;</font></font><font><font>
- أظهر هذا الداخلية</font></font><font><font>
-&lt;/button&gt;</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>