ผลลัพธ์ที่คาดหวังนั้นแตกต่างจากผลลัพธ์จริงมากเมื่อฉันค้นพบปัญหานี้บนอินเทอร์เน็ตโดยไม่ตั้งใจ
var a = {n: 1} var b = a; ax = a = {n: 2} console.log (ax); console.log (bx); undefinedObject {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วิเคราะห์:
ax = a = {n: 2}
การทำงานที่ได้รับมอบหมายของ JS นั้นรวมกับด้านขวาซึ่งเทียบเท่ากับ ax = (a = {n: 2})
การดำเนินการประเมินผลของ JS นั้นมาจากซ้ายไปขวา (PS: พูดคุยกับเพื่อนร่วมงานเขาบอกว่ามันมาจากซ้ายไปขวาและฉันคิดว่ามันมาจากขวาไปซ้าย แต่ในที่สุดฉันก็พบว่าฉันผิด)
1) AX = (ผลลัพธ์สุดท้ายในวงเล็บ)
หลังจากพบว่าแอตทริบิวต์ x ของ A ไม่มีอยู่ให้เพิ่มแอตทริบิวต์ x ไปยังวัตถุที่ชี้ไปที่ A แอตทริบิวต์ X นี้จำเป็นต้องกำหนดผลลัพธ์ โอเคฉันจะรอผล
2) เพราะคุณต้องการได้ผลลัพธ์ในวงเล็บ
3) กลับไปที่ A = {N: 2} ในวงเล็บ
การใช้งานอย่างง่าย ๆ ของการมอบหมาย JS อย่างต่อเนื่องด้านบนคือเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น