có cách nào để tôi có thể thực hiện eval() trên một phạm vi cụ thể (nhưng KHÔNG phải toàn cục)?Chỉ định phạm vi cho eval() trong JavaScript?
ví dụ, đoạn mã sau không làm việc (một là undefined trên báo cáo kết quả thứ hai) bởi vì họ đang ở trên phạm vi khác nhau:
eval(var a = 1);
eval(alert(a));
Nếu có thể, tôi muốn tạo ra một phạm vi khi đang bay . ví dụ (cú pháp chắc chắn là sai, nhưng chỉ để minh họa ý tưởng)
var scope1;
var scope2;
with scope1{
eval(var a = 1); eval(alert(a)); // this will alert 1
}
with scope2{
eval(var a = 1); eval(a++); eval(alert(a)); // this will alert 2
}
with scope1{
eval(a += 2); eval(alert(a)); // this will alert 3 because a is already defined in scope1
}
Bất kỳ ý tưởng nào về cách đạt được điều gì đó như thế này? Cảm ơn!
Trong trường hợp ai đó vẫn quan tâm, tôi chỉ đăng một câu trả lời ở đây http://stackoverflow.com/a/43306962/1758245 –