3
คุณจะสร้างโครงสร้างใหม่อย่างปลอดภัยในภาษาที่มีขอบเขตแบบไดนามิกได้อย่างไร
สำหรับพวกคุณที่โชคดีที่ไม่ได้ทำงานในภาษาที่มีขอบเขตแบบไดนามิกให้ฉันขอทบทวนเล็กน้อยเกี่ยวกับวิธีการทำงาน ลองนึกภาพภาษาเทียมที่เรียกว่า "RUBELLA" ซึ่งมีลักษณะดังนี้: function foo() { print(x); // not defined locally => uses whatever value `x` has in the calling context y = "tetanus"; } function bar() { x = "measles"; foo(); print(y); // not defined locally, but set by the call to `foo()` } bar(); // prints "measles" …