باسلام خدمت دوستان محترم
بنده یه سری آموزش جاوا اسکریپت (زبان اصلی ) دارم دنبال میکنم ولی و الان به یکی از آموزش ها رسیدم و خط کدها رو نمیتونم تحلیل کنم که این چند خط کد نوشته شده دقیقا چجوری کار میکنن .ممنون میشم دوستانی که با تجربه تر هستند کد رو ببینن و بصورت ساده تر شرح بدهید.
این یه چیزی شبیه مبحث کلاس (class) در بقیه زبانهای برنامه نویسی هستش
این مثالی که زدید مثال خیلی سادست که تقریبا کار ارایههای انجمنی رو انجام میده
اصول کار کلاس اینه که یه سری متغیرها و کارهایی که مربوط به یه نوع خاص هستند یا یک کار واحد رو انجام میدن و در عین حال در طول برنامه شاید برها و بارها ازشون استفاده بشه رو به صورت مجتمع بنویسیم؛
مثلا این مثال شما یه تابع درست کرده در مورد مردم؛ شما میتونید با این تابع هرچندتا که دلتون ساخت مردم بسازید که هرکدومشون یک نام و یک سن خاص رو دارند؛ و خر وقت در طول اجرای برنامه احتایج داشتی بهشون دسترسی پیدا کنی!
یه لحظه فکر کن اگه از روش عادی و معمولی میخواستی استفاده کنی باید هربار یه ارایه میساختی با دو تا متغی که توی اولیش اسم رو ذخیره کنی و توی دومی سن و ... (البته به این بدیای هم که میگم نیست
)
ولی ابنطوری یکبار ساختار رو تعریف میکنی؛ و هر بار با یدونه new ساده از اون ساختارت؛ اون رو میسازی و . . .
این دوتا متن رو بخونید
http://www.sourcecodes.ir/post.php?id=34...javascirpt
http://www.yazpoz.com/%D8%A7%D8%B4%DB%8C...avascirpt/
باسلامی مجدد خدمت همه عزیزان
این کد رو تو تمرینات داشتم انجام میدادم که متاسفانه تا Age رو کلا به کد اضاف کردم مشکل تو اجرا پیدا میشه و با name و famile مشکلی نداره ولی با اضاف شدن Age مشکل undefined میده
کد:
var names = new Array("ali" , "hassan" , "hossein");
var famile = new Array("mohammadi" , "faghih", "eslami");
var age = new Array(24 , 33 , 42);
var fullname = names.concat(famile.age);
document.write(fullname[3]);
شما آرایه ایجاد کردبد خب!!
سوال اولون فرق ذاره با این سوال دومتون! الان شما دارید آرایه درست میکنید! چند نوع آرایه داریم؛ اون آرایه ای که میشه اسم گذاشت روی عناصر رو بهش میگن associative یا آرایه انجمنی مثال های زیر رو با دقت ببین:
کد php:
function s(a){
this.age = a;
}
var w = new s(3);
alert(w.age);
هردوتا متغیر age دارند! ولی اولی با اون مدل توی سوال اولتون پیاده سازی شده و دومی هم با این مدل سوال دومتون
مشکلتون مربوط میشه به این
عناصر famile رو فقط توسط عذذ میتونید بهشن دسترسی داشته باشید ؛ هیچ اسمی واسشون تعریف نشده!! برای تعریف اسم باید مثل من توی پست قبلیم عمل کنید
باسلام خدمت شما دوست گرامی
من تاپیک جدید نزدم تا پراکندگی پیش نیاد و نیاز به تاپیک های مجدد بصورت جدید نباشه و تو یه تاپیک مشکلاتم رو مطرح کنم.
برای سوال دوم که پرسیدم متاسفانه چون بیش از این بلد نبودم نتونستم خطایی رو که میداد رو برطرف کنم و مثال هایی رو که زدید رو با دقت بررسی کردم ولی متاسفانه تو همون چند کد خودم نتونستم برطزفشون کنم و ممنون میشم کد های بنده رو اصلاح کنید تا پس اجرای مجدد همون قسمت ایراد دار رو بررسی کنم و متوجه بشم چی به چی شد و الان متاسفانه با توضیحاتی که دادید نتونستم کار کنم.
شما نوشتید famile.age ؛ درست؟
این یعنی چی؟ یعنی ما یه متغیری داریم بنام famile ؛ که در داخل این متغیر یک عضو دیگهای تعریف کردیم که اسمش هست age ؛ و حالا ما میخواییم با دستور famile.age به مقدارش دسترسی داشته باشیم؛ تا اینجا درست؟!
حالا بریم سراغ کد شما؛
شما نوشتی:
کد:
var famile = new Array("mohammadi" , "faghih", "eslami");
عضوهای famile عبارتند از اینها:
famile[0] که میشه mohammadi
famile[1] که میشه faghih
famile[2] که میشه eslami
خب پس نتیجه میگیریم که famile.age اصلا تعریف نشده!!! واسه همین به اررور بر میخوریم!!
شما رفتید توی خط بعدی نوشتید :
کد:
var age = new Array(24 , 33 , 42);
که خب این هم یه متغیر دیگه تعریف کردید و . . . که کوچکترین ربطی به متغیر famile نداریه!! این یک متغیر جداگانه هست و اون famileهم یه متغیر جداگانه دیگه!!
برای اینکه بتونی famile.age رو داشته باشی؛ باد از طریق مثال من برید جلو:
کد php:
function FAMILE_C(a){
this.age = a;
}
var famile = new FAMILE_C(42);
شما حالا famile.age رو دارید
مدیرام محترم : به دلیل پراکنده نشدن مشکلات و خطاها و جلوگیری از ایجاد تاپیک های ممتد، برای رفع خطاهای مرتبط به جاوا اسکریپت در همین تاپیک مشکلاتم رو مطرح میکنم.
دوستان دلیل اجرا نشدن این کد ساده از کجا میتونه باشه ؟
کد رو چندین بار چک کردم ولی متاسفانه مشکل رو نتونستم حل کنم !
کد:
<script type="text/javascirpt">
function mearge() {
var text1 = "how are" ;
var text2 = "you friends";
var result = text1 + text2;
return result;
}
</script>
این یک تابع هست به خودی خود اجرا نمیشه باید به قولی صداش بزنید به صورت زیر
کد:
<script type="text/javascirpt">
function mearge() {
var text1 = "how are" ;
var text2 = "you friends";
var result = text1 + text2;
return result;
}
alert(mearge() );
</script>
(۲۳-بهمن-۱۳۹۵, ۱۱:۰۴:۴۰)lord_viper نوشته است: [ -> ]این یک تابع هست به خودی خود اجرا نمیشه باید به قولی صداش بزنید به صورت زیر
کد:
<script type="text/javascirpt">
function mearge() {
var text1 = "how are" ;
var text2 = "you friends";
var result = text1 + text2;
return result;
}
alert(mearge() );
</script>
متاسفانه باز هم چیزی رو برنگردوند و اجرا نشد !
یک msg box با متن how are you friends نشون میده