سلام دوستان من داشتم حلقه ی for in رو واسه پیمایش آبجکت ها امتحان می کردم این حلقه متاسفانه قابلیت اجرای متود آبجکت رو نداره واسه همین از یک کاندیشن ترنری استفاده کردم هر وقت تایپ یک key فانکشن شد بتونه متود رو اجرا کنه.
کد :
var myobj = {
name: "mahdi", lastname: "sam", age: 16, sam: function () {
console.log(`my name is ${ this.name } and my last name is ${ this.lastname }`);
}
}
for (var key in myobj) {
console.log(typeof myobj[key] == "function" ? myobj[key]():myobj[key]);
}
با کمال تعجب عبارت زیر برام لاگ گرفته شد :
mahdi
sam
16
my name is mahdi and my last name is sam
undefined
خوب اینکارم جواب داد و متود اجرا شد ولی توی آخرین لاین زده undefined مگه ما ایندکس پنجم داریم آخه توی آبجکت :| ؟
خوب دوستان کسی میدونه چرا undefined شده!!!
سلام دوست عزیز شما یک متد رو صدا می زنید بعد اون متد یک مقداری رو log می گیره ( برنمی گردونه) به همین دلیل javascript مقدار که برمی گردونه undefined هست. اگر به این شکل استفاده کنید درست می شود.
var myobj = {
name: "mahdi", lastname: "sam", age: 16, sam: function () {
return (`my name is ${ this.name } and my last name is ${ this.lastname }`);
}
}
for (var key in myobj) {
console.log(typeof myobj[key] == "function" ? myobj[key]():myobj[key]);
}
@mahdisamadiyan82 البته جاواسکریپت یکسری undefined هم چاپ می کند که در این لینک توضیح داده شده.
user-avatar
سبحان مولایی
@websaz
user-avatar
َامیر علی
@ajdar9667
user-avatar
گمنام
@gomnam
user-avatar
رضا جهانگیر
@rezajahangir
user-avatar
Saman
@samanzdev
user-avatar
moha li
@mohaligateway
user-avatar
حسام موسوی
@hesammousavi
user-avatar
رضا پارسیان
@Rp76
user-avatar
محمدصادق عبداللهی
@mimsadAlef
user-avatar
سیدعلی موسوی
@juza66
😐😑
سلام
توی کنسول مرورگر اجرا کردید ؟
اون مقدار undefined مربوط به حلقهتون نیست و در واقع مقدار for هست که نوشته شده
همون چهارتای اول مربوط به حلقهتون هستن
سلام دوست عزیز شما یک متد رو صدا می زنید بعد اون متد یک مقداری رو log می گیره ( برنمی گردونه) به همین دلیل javascript مقدار که برمی گردونه undefined هست. اگر به این شکل استفاده کنید درست می شود.
var myobj = {
name: "mahdi", lastname: "sam", age: 16, sam: function () {
return (`my name is ${ this.name } and my last name is ${ this.lastname }`);
}
}
for (var key in myobj) {
console.log(typeof myobj[key] == "function" ? myobj[key]():myobj[key]);
}
@mahdisamadiyan82 البته جاواسکریپت یکسری undefined هم چاپ می کند که در این لینک توضیح داده شده.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟