2011-12-02 56 views
12

Làm cách nào tôi có thể gọi các biến mà tôi đã lưu trữ trong một tệp javascript từ một tệp khác?Biến cuộc gọi từ một tệp javascript đến một tệp khác

var.js

var VAR = new Object; 
VAR.myvalue = "Yeah!"; 

sau đó tôi muốn sử dụng VAR.myvalue đây

sample.js

alert(VAR.myvalue); 
+1

... bạn đã thử * * này? –

+0

có, nhưng không hoạt động. –

+0

Bạn có bao gồm var.js trước sample.js không? Và có thể đặt 'cảnh báo' ở đâu đó chắc chắn sẽ được gọi? – Kevin

Trả lời

11

Thứ nhất, thay vì

var VAR = new Object; 
VAR.myvalue = "Yeah!"; 

Opt cho

var VAR = { 
    myvalue: "Yeah!" 
}; 

Nhưng chừng nào var.js được tham chiếu đầu tiên, trước sample.js, những gì bạn có nên làm việc tốt.

var.js sẽ tuyên bố, và khởi VAR, mà sẽ được đọc từ kịch bản khai báo trong sample.js

+0

Vâng, đã thử một vài lần, nhưng vẫn không hoạt động. –

+0

@RobinCarloCatacutan - nó sẽ hoạt động. Vui lòng gửi thêm mã –

+0

Tôi đã tạo một mẫu ngay bây giờ, vâng nó hoạt động nhờ. Nhưng trong trường hợp của tôi bởi vì tôi đang áp dụng điều này trên một widget và nó đã không. Có thể có vấn đề với mã của tôi. :) nhưng cảm ơn. –

2

Bao gồm cả tập tin JavaScript trong một tập tin HTML, đặt sample.js sau var.js để VAR.myvalue là hợp lệ:

<script type="text/javascript" src="var.js"></script> 
<script type="text/javascript" src="sample.js"></script> 
2

Hãy thử tách phạm vi của bạn bằng cách sử dụng module pattern. Điều này sẽ loại bỏ đau đầu trong tương lai.

var.js

var someVar = (function() { 
    var total = 10; // Local scope, protected from global namespace 

    return { 
    add: function(num){ 
     total += num; 
    } 
    , sub: function(num){ 
     total -= num; 
    } 
    , total: function(){ 
     return total; 
    } 
    }; 
}()); 

Sau đó, bạn có thể sử dụng các phương pháp và các thuộc tính của đối tượng đó từ bất cứ nơi nào khác.

sample.js

someVar.add(5); 
someVar.sub(6); 
alert(someVar.total()); 
+0

Hey, đây là một trong những công trình trên widget của tôi. Bạn có thể làm cho điều này đơn giản hơn bởi vì tôi chỉ muốn lưu trữ các giá trị của tôi cho javascript khác và chỉ cần gọi nó. Chỉ là những gì tôi đã nói ở trên. Cảm ơn bạn đã thăng tiến :) –

+0

LOL, điểm chính là 'tìm hiểu bạn' về Javascript OOP. Adam Rackis trả lời ở trên là như nhau mà không có các phương pháp, chỉ đối tượng tài sản nhưng về cơ bản hoạt động theo cùng một cách. –

+0

@Pastor Bones - bạn đã không thực sự trả lời câu hỏi: điểm quan trọng mà bạn không đề cập đến là "var.js" phải được bao gồm _before_ "sample.js". (Ngoài ra, tôi đồng ý rằng các mô-đun mô-đun có thể hữu ích, nhưng chỉ khi bạn thực sự cần phương pháp.Nếu bạn chỉ cần một vài thuộc tính dữ liệu một đối tượng đơn giản nghĩa đen là con đường để đi.) – nnnnnn

Các vấn đề liên quan