سلوك وحدة تحكم javaScript من Chrome: تقييم الكائنات بتكاسل
لتوضيح ذلك ، ضع في اعتبارك الكود التالي:var s = ["hi"] ؛ console.log (s) ؛ s [0] = "bye" ؛ console.log (s) ؛
var s = ["hi"]; console.log(s); s[0] = "bye"; console.log(s);في Firefox ، مخرجات وحدة التحكم:
["BYE"]
[ "hi" ] [ "bye" ]
["وداعا"] ["BYE"]
var s = ["hi"]; console.log(s); s[0] = "bye"; console.log(s);سلوك تقييم غير متوقع
عند تنفيذ عبارة Console.log الأولى ، تشير وحدة التحكم إلى الكائن في الذاكرة. لا تنعكس أي تعديلات لاحقة للكائن ، مثل تغيير العنصر الأول من "HI" إلى "وداعا" ، في إخراج عبارة console.log الأولى. هذا يعني أن وحدة التحكم تقوم بتقييم الكائن فقط في وقت عبارة console.log الأولى وتخزين اللقطة.
مُثَبَّت). ينص الخطأ على أن وحدة التحكم في Chrome لا تؤدي تقييمًا كسولًا للكائنات التي يتم الوصول إليها مباشرة ، مما يؤدي إلى السلوك المرصود. هذا يجبر Chrome على إنشاء تمثيل للكائن الذي لا يتم تغييره من خلال التغييرات اللاحقة ، مما يضمن أن إخراج وحدة التحكم يعكس الحالة الحالية للكائن.
var s = ["HI"] ؛ console.log (S.ToString ()) ؛ s [0] = "bye" ؛ console.log (S.ToString ()) ؛ الإخراج:
مرحبًا الوداع
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3