有沒有一種方法可以從不同的名稱空間中交叉引用類或實例變量的實例,並考慮到它在主html中定義的腳本文件的順序很重要應用。實際上,我想知道是否有可能交叉引用兩個不同的類實例,一個指向在另一個名稱空間中定義的引用,另一個定義在第二個類中的變量指向第一個。如何在Javascript中交叉引用類
假設我有一個main.js
文件,其中我定義它使用在另一個命名空間中定義一些實例變量的一類,讓我們在particle.js
,在此,同時我定義一個變量指向回Main
類公共變量說。
var Main = (function() {
var p = new Particle();
this.draw = true;
this.width = 800;
this.height = 600;
function print() {
console.log(p.width, ':', p.height);
}
return {
draw : this.draw,
width : this.width,
height : this.height,
print : print
}
})();
function Particle() {
this.width = Main.width;
this.height = Main.height;
this.print = function() {
console.log(this.width, ':', this.height);
}
}
var p = new Particle();
p.print();
Main.print();
...並在*.html
JavaScript文件順序將是:
<script src = 'main.js'></script>
<script src = 'particle.js'></script>
其實這個代碼工作,如果你嘗試在螢火例如如預期,但在相同的邏輯在我的真實應用程序中,這非常複雜,我在控制檯中遇到了Main is undefined
錯誤。我知道可以使用AMD和Require.js來模擬真實的課程模塊,但我現在不想在AMD上進行傳遞。