الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

طلب شرح وظيفة "this" operator

بدأه Abou Ayman في 13 يناير 2012 · 3 رد · 1,120 مشاهدة · في قسم البرمجة بــ Javascript
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

نرجو من اخواننا الكرام اصحاب الخبرة فى جافا سكربت شرح مبسط لوظيفة ال "this" operator

#2

السلام عليكم ورحمه الله وبركاته

اخي الكلمة this تعبر عن المستند نفسه, فيمكنك الوصول لجميع خائص وطرق المستند عبرها ..

.:: Wish to become better and better ::.

#3

الكلمة المحجوزة this تستخدم للإشارة الى كائن او تاق او شي معين سواء كان مستند الصفحة او عبارة عن عنصر html معين او كائن

هذا الكائن يكون مبهم بالنسبة لك اي انك لا تستطيع ان تشير اليه بأسم معين

مثلا ً لما استخدم getElementById فأنا في هذه الحالة اشير الى عنصر معين من خلال الـ id ومجبر اني ادخل عنوان الـ Id حتى استطيع ان اصل لهذا العنصر , لكن فرضا ً انا مش عارف ايش اسم هذا العنصر , بمعنى اخر انو الـ id ممكن يكون a وممكن في حالة ثانية يكون c وممكن يكون f اي غير معلوم بالنسبة لي ، فجابوا this للإشارة الى كائن مبهم بالنسبة لك , وممكن تستخدمه مع جميع الاشياء الممكنة

من امثلتها , فرضا ً لو عندي 20 زر , اريد لما اضغط على اي زر من هذه الازرار تظهر رسالة تنبيه للمستخدم نصها يكون النص الي موجود في الزر نفسه

شوف هذا المثال عشان تتضح لك الصورة

<html>
	<head>
		<script type="text/javascript">
			function doSomething(obj) 
			{
				x = obj.innerHTML;
				alert(x);
			}
		</script>
	</head>

	<body>
		<button onclick="doSomething(this)">b1</button>
		<button onclick="doSomething(this)">b2</button>
		<button onclick="doSomething(this)">b3</button>
		<button onclick="doSomething(this)">b4</button>
	</body>
</html>

لاحظ سويت اربعة ازرار و دالة واحدة فقط هذه الدالة هي التي تظهر الرسالة لكن انا مش عارف ايش من زر راح يضغط المستخدم لذلك عملت دالة ومررت لها باراميتر معين , هذا الباراميتر يشير الى كائن , ايش من كائن انا مش عارف , ثم في الزر حطيت الدالة ومررت في مكان الباراميتر الكلمة المحجوزة this , اي كاني اقول له استخدم الدالة doSomething مع هذا العنصر .

this في الزر b1 تشير للزر b1 و في الزر b2 تشير الى b2 , والامثلة كثيرة عليها .

مثال نظري اخر حتى تتضح الصورة , لو مثلا ً انا سويت لعبة حرب فيها عشرة جنود وانا اطلق النار عليهم , يفترض لما تصيب الرصاصة احد الجنود ان الجندي يموت , طيب انا كمبرمج ممكن اسوي دالة تنفذ امر الموت للجندي , لكن انا كيف راح اعرف انو الجندي هذا الي اصابته الرصاصة هو الي المفترض انو يموت مش جندي اخر , فهنا انا ممكن استخدم this واحطها مع الرصاصة واقولة ولما تصيب الرصاصة الجندي كأني اقول له نفذ امر حدث الموت على this الي هو هذا الجندي :happy:

ان شاء الله تكون وضحت الفكرة

وظيفتها مشابهه لل sender في لغة #C كذلك الـ this موجود في لغة Actionscript بنفس الفكرة والالية

راجع هذا الرابط لمزيد من التوضيح

The this keyword

تم تعديل هذه المشاركة بواسطة M.B.O في 14 يناير 2012 في 22:52

5

M.B.O

Mohamed Bin Othman

إبن المكلا

يابني البشر ماذا فعلتم بالبشر !!

إسـألـنـي

#4

بارك الله فيكم يا استاذ VB Helper و M.B.O وضحت الصورة و شكرا لكم على الشرح و التوضيح

مواضيع مشابهة