tôi đã biết rằng tôi có thể vượt qua trong một đối tượng:
{a:"this is a"}
nơi một là tên của biến nhưng tôi thực sự muốn chỉ vượt qua trong một biến hoặc tên của một biến (một hoặc "a") và để cho hàm bằng cách nào đó tìm thấy tên của biến và giá trị của nó.
Lý do tôi muốn làm điều này hơi kỳ lạ là tôi đang viết một thói quen in gỡ lỗi. Nếu tôi gọi nó là như thế này:
var x = "some string";
say(x);
hoặc
say("x");
Tôi muốn nó in cái gì đó như:
X (string) = some string
Tôi khá chắc chắn có thể tìm thấy các loại của một biến trôi qua, và vì vậy tôi biết cách in nó, nhưng tôi thực sự muốn cố gắng tránh sự thừa hưởng của việc phải gọi nó như thế này:
say("x", x);
đó là những gì tôi phải làm bây giờ.
Có vẻ như gần như là hoạt động là câu trả lời của OrbMan. Chắc chắn, eval là ác, nhưng tôi nghĩ rằng nó ở đây vì nó chỉ dành cho tiện ích gỡ lỗi và sẽ không nằm trong mã được xuất bản. Tôi đã thực hiện một thói quen kiểm tra ít của riêng tôi sử dụng giải pháp rằng:
var x = "this is x";
function say(a) {
alert(a + " = " + eval(a));
}
say("x");
và nó hoạt động nhưng CHỈ NẾU X LÀ GLOBAL. Điều này không hoạt động:
function wrapper() {
var x = "this is x";
say("x");
}
Vì vậy, giải pháp này gần, nhưng vì tôi hầu như không sử dụng biến Toàn cầu, điều này sẽ không hoạt động. Darn, nó gần rồi. Những gì tôi nghĩ rằng tôi cần là "gọi theo tên" thay vì "theo giá trị" hoặc "bằng cách tham khảo". Và tôi cần một chức năng sẽ hoạt động cho dù nó đang được gọi từ một chức năng khác hay không.
Vì tôi đã dành nhiều giờ tốt cho bản thân mình, đặt câu hỏi ở đây là một hành động tuyệt vọng, tôi phải kết luận rằng thực sự không có cách nào để làm điều này. Shucks.
Đối với tất cả những người đã trả lời, cảm ơn sự giúp đỡ của bạn.
http://stackoverflow.com/questions/1007981/how-to-get-function-parameter-names-values-dynamically-from-javascript và http://stackoverflow.com/questions/914968/inspect- các tên-giá trị-của-đối số-trong-định nghĩa-thực thi-of-a-javascript –
@Paulo - các liên kết đó nhận địa chỉ các tên tham số như được định nghĩa trong chữ ký hàm. Câu hỏi này là về việc nhận tên và giá trị của biến được truyền vào hàm. – RedFilter