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

Parameter of method insde user defined object insde java script

بدأه Ah.K.EL-Saman في 30 أكتوبر 2010 · 8 رد · 788 مشاهدة · في قسم البرمجة بــ Javascript
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اخوانى على الرغم انى مش بكتب بالجافا سكربت لكن مضطر للكود ده بيها فأتمنى ان اﻻقى المساعدة كما هو معهود بينا

<script type="text/javascript">
/* this is the seconed function */
function computediameter(){
var diameter=this.radius*2
return diameter
}
/* this is the object */
function circle(r){
this.radius=r
this.diameter=computediameter
}

var mycircle=new circle(20)
alert("diameter="+mycircle.diameter())

</script>

الكود ده اس ما واضح كدا انه فى كائن اسمهCircle والكائن ده ليه معامل واحد اللى هو r او نص القطر وجواه دالة واحدة اللى هى diameter واللى هى بتحسب القطر بضرب نص القطر فى اتنين

كل ده بسيط المشكلة انا عايز اعرف ازاى زى اى لغة تانية امرر للدالة ده اللى اسمها diameter معامﻻت يعنى اكتب

var myCircle=new circle()
myCircle.diameter(2)

حاولت بمليون syntax اكتبها ومش ﻻقى ليها example على google ياريت حد يساعدنى كود بسيط جدا لكن طلع عينى وانا اصﻻ بكره الجافا سكربت

تم تعديل هذه المشاركة بواسطة Ah.K.EL-Saman في 30 أكتوبر 2010 في 20:09

سَبِّحِ اسْمَ رَبِّكَ الْأَعْلَى

#2

اخى الكريم

هذا منتدى جافا وليس جافا اسكربت

فاعتقد ان مكانه غير صحيح

مكانه الصحيح يكون هنا باذن الله

/index.php?showforum=205

لعل احد هنا يعرف جافا اسكربت يرد عليك

سوف ابلغ احد الاعضاء بالرد عليك ان شاء الله :)

مرحبا بك من جديد , حمدلله على السلامه :)

Software Developer
Mahmoudkelany.com


 

#3
Mahmoud Kelany كتب:

اخى الكريم

هذا منتدى جافا وليس جافا اسكربت

فاعتقد ان مكانه غير صحيح

مكانه الصحيح يكون هنا باذن الله

/index.php?showforum=205

لعل احد هنا يعرف جافا اسكربت يرد عليك

سوف ابلغ احد الاعضاء بالرد عليك ان شاء الله :)

مرحبا بك من جديد , حمدلله على السلامه :)

تمام يا باشمهندس معلش خطأ برمجى runtime error :)

ياريت لو مشرفينا حد منهم ينقل الموضوع وغلطة نتأسف عليها

والله يسلمك هكلمك على الخاص

سَبِّحِ اسْمَ رَبِّكَ الْأَعْلَى

#4

ولايهمك يا اخى :)

فعلا RuntTime Exception :D

ان شاء الله بلغت احد الاخوه وان شاء الله يجاوبك :)

تشرف يا غالى فى اى وقت :D

Software Developer
Mahmoudkelany.com


 

#5
 function circle(r) {
  this.radious=r;
  this.diameter=computediameter;
}

function computediameter() {
var arg =computediameter.arguments;
if(isNaN(arg[0]))
	{
	return this.radious*2;
	}
	else
	{
	return	arg[0]*2;
	}

}
var radforbuildcircle;
while(isNaN(radforbuildcircle) || radforbuildcircle=="" ||radforbuildcircle==" ")
{
radforbuildcircle=prompt("ادخل نصف قطر الدائرة");
}
var myCircle = new circle(radforbuildcircle);
alert( 'The circumference is ' + myCircle .diameter() );

var radforbuildjustdiameter;
radforbuildjustdiameter=prompt("ادخل نصف قطر الدائرة");
alert( 'The circumference is ' + myCircle.diameter(radforbuildjustdiameter) );
3

In bad state

#6

أخي الكريم

منطقياً، لا يجوز تعريف متحولين في صف الدائرة، أحدهما لنصف القطر والآخر للقطر، قم بتعريف متحول واحد فقط يمثل نصف القطر والمتحول الآخر يتم حسابه برمجياً.

ومع أنه ليس لدي تلك الخبرة في هذه اللغة ولكنني أظن أن الحل كما يلي:

<script type="text/javascript">

/* this is the object */
function circle(r){
this.radius=r;
}

circle.prototype.getdiameter = function() { return 2*this.radius; }

var mycircle=new circle(20);
alert("diameter="+mycircle.getdiameter());

</script>

لقد قمت بتجربة الكود وهو يعطي 40 أي أنه صحيح :)

LORDCOVER

GOOD BYTE

تم تعديل هذه المشاركة بواسطة LordCover في 30 أكتوبر 2010 في 23:20

1

مؤسس شبكة مواقع إجابتي أول شبكة مواقع عربية للأسئلة والأجوبة

#7

اخى الكريم X-File حلك أكثر من رائع وانا استشفيت منه الاجابة اللى انا عايزها +1 وشاكر لك جدا

وده الكود بتاعى بعد تعديله بما استنتجته من كودك

<script type="text/javascript">
/* this is the seconed function */
function computediameter(){
var diameter=computediameter.arguments
diameter=diameter[0]*2
return diameter
}
/* this is the object */
function circle(r){
this.radius=r
this.diameter=computediameter
}
/* this is an instance of object */
var mycircle=new circle()
alert("diameter="+mycircle.diameter(20))
</script>

اخى LordCover انا شاكر لك جدا جدا جدا على انك حاولت تساعدنى بس حلك كان بعيد طلبى بس بجد بكرر لك شكرى جزاكم الله وبرضه +1 ﻻنك حاولت تساعد بما استطعت

تم تعديل هذه المشاركة بواسطة Ah.K.EL-Saman في 31 أكتوبر 2010 في 02:36

1

سَبِّحِ اسْمَ رَبِّكَ الْأَعْلَى

#8

السلام عليكم

اهلا وسهلا اخي

لكن المشكلة افترض انك لا تريد تمرير قيمةcomputediameter

وانك ستحصل على القيمة من circle®

لذلك عملت تحقق اي شرط ان كان يملك قيمة او لا

بالتوفيق :)

In bad state

#9
X-File كتب:

 function circle(r) {
  this.radious=r;
  this.diameter=computediameter;
}

function computediameter() {
var arg =computediameter.arguments;
if(isNaN(arg[0]))
	{
	return this.radious*2;
	}
	else
	{
	return	arg[0]*2;
	}

}
var radforbuildcircle;
while(isNaN(radforbuildcircle) || radforbuildcircle=="" ||radforbuildcircle==" ")
{
radforbuildcircle=prompt("ادخل نصف قطر الدائرة");
}
var myCircle = new circle(radforbuildcircle);
alert( 'The circumference is ' + myCircle .diameter() );

var radforbuildjustdiameter;
radforbuildjustdiameter=prompt("ادخل نصف قطر الدائرة");
alert( 'The circumference is ' + myCircle.diameter(radforbuildjustdiameter) );

تسلم لى يا عبده

دائما ناصفنى :)

ومنى +1

1

Software Developer
Mahmoudkelany.com


 

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