Có một số cách để trả về nhiều giá trị trong JavaScript. Bạn luôn có thể quay trở lại nhiều giá trị trong một mảng:
function f() {
return [1, 2];
}
Và truy cập chúng như thế này:
var ret = f();
document.write(ret[0]); // first return value
Nhưng cú pháp rất đẹp trong JavaScript 1,7 với việc bổ sung destructuring chuyển nhượng (nếu bạn đủ may mắn để nhắm mục tiêu một môi trường được đảm bảo để hỗ trợ nó (ví dụ: tiện ích mở rộng của Firefox)):
var a, b;
[a, b] = f();
document.write("a is " + a + " b is " + b + "<br>\n");
Một tùy chọn khác là trả về một đối tượng có chứa bạn giá trị r:
function f() {
return { one: 1, two: 2 };
}
nào sau đó có thể được truy cập bằng tên:
var ret = f();
document.write(ret.one + ", " + ret.two);
Và tất nhiên bạn có thể làm một cái gì đó thực sự khủng khiếp như sửa đổi phạm vi toàn cầu hoặc thậm chí thiết lập các thuộc tính trên các chức năng chính:
function f() {
f.one = 1;
f.two = 2;
}
f();
document.write(f.one + ", " + f.two);
Đọc thêm (và nguồn của một số ví dụ sau):
https://developer.mozilla.org/en/New_in_JavaScript_1.7#Destructuring_assignment_(Merge_into_own_page.2fsection)
Nguồn
2011-02-08 20:05:34
vì vậy một cái gì đó như vượt qua bằng cách tham chiếu? – kjy112
Tôi tin rằng một cái gì đó dọc theo dòng trở về một mảng kết hợp sẽ là cách javascript để đi, nhưng nếu bạn đang cố gắng để nhân rộng bằng cách tham khảo này có thể là thú vị: http://sirdarckcat.blogspot.com/2007/07/ chuyển-tham chiếu đến javascript.html – kloffy
@kloffy rằng bài đăng trên blog có đầy đủ các lỗi và hiểu lầm - Tôi sẽ không dựa vào nó cho nhiều thứ bất kỳ – Pointy