Khi tôi gọi hàm, phạm vi cục bộ được dựng cho cuộc gọi đó. Có cách nào để trực tiếp tham chiếu phạm vi đó như một đối tượng không? Cũng giống như cửa sổ là một tham chiếu cho đối tượng phạm vi toàn cục.JavaScript: Tham chiếu phạm vi địa phương của hàm là đối tượng
Ví dụ:
function test(foo){
var bar=1
//Now, can I access the object containing foo, bar, arguments and anything
//else within the local scope like this:
magicIdentifier.bar
}
Cách khác, không ai có một danh sách đầy đủ của những gì là trong phạm vi địa phương trên đầu trang của các biến tùy chỉnh?
Thông tin cơ bản: Tôi đang cố gắng chuyển sang phạm vi toàn cục từ bên trong một cuộc gọi hàm, câu lệnh bằng câu chuyện là một trò đùa, cuộc gọi hoạt động tốt hơn một chút, nhưng nó vẫn phá vỡ mọi thứ được khai báo trong hàm phạm vi nhưng không phải trong phạm vi toàn cầu, do đó tôi sẽ khai báo vài trường hợp này trong phạm vi toàn cầu, nhưng điều đó đòi hỏi tôi phải biết chúng là gì. Hàm execScript của IE thực hiện một sự thay đổi hoàn toàn, nhưng nó chỉ giải quyết được vấn đề cho IE.
Lưu ý: Đối với bất kỳ ai đang tải JavaScript động, setTimeout(code,1)
là một hack đơn giản hiệu quả để đạt phạm vi toàn cầu, nhưng nó sẽ không thực thi ngay lập tức.
Nếu bạn cần truy cập đối tượng chứa đối số 'foo' bên trong hàm tại sao không trực tiếp chuyển đối tượng này làm đối số? –