تختلف النتائج المتوقعة تمامًا عن النتائج الفعلية عندما اكتشفت هذه المشكلة بطريق الخطأ على الإنترنت.
var a = {n: 1} var b = a ؛ ax = a = {n: 2} console.log (ax) ؛ console.log (bx) ؛ undefiniveObject {n: 2}إذا تفككت ، ستكون النتيجة ما اعتقدت
var a = {n: 1} var b = a ؛ a = {n: 2} ؛ ax = {n: 2} console.log (ax) ؛ // object {n: 2} console.log (bx) ؛ // undefinedتحليل:
الفأس = a = {n: 2}
يتم دمج تشغيل المهمة لـ JS مع اليمين ، وهو ما يعادل AX = (a = {n: 2})
إن عملية تقييم JS من اليسار إلى اليمين (PS: تمت مناقشتها مع زميل ، قال إنه كان من اليسار إلى اليمين ، واعتقدت أنه كان من اليمين إلى اليسار ، لكن في النهاية وجدت أنني مخطئ)
1) الفأس = (النتيجة النهائية في قوسين)
بعد العثور على أن سمة X لـ A غير موجودة ، أضف سمة X إلى الكائن المشار إليه بواسطة A. تحتاج هذه السمة X إلى تعيين نتيجة لها. حسنًا ، سأنتظر النتيجة.
2) نظرًا لأنك ترغب في الحصول على النتيجة في أقواس ، تستمر AX في انتظار النتيجة في أقواس لإعادتها ، لذلك تبدأ في تقييم A = {n: 2} ثم إرجاعها إلى هذه السمة الجديدة x
3) العودة إلى A = {n: 2} بين قوسين ، حدث تغيير الإشارة
إن التنفيذ البسيط لتخصيص JS المستمر أعلاه هو كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.