考虑到主 html 应用程序中定义的脚本文件的顺序很重要,有没有办法交叉引用来自不同命名空间的类的实例或实例变量。实际上我想知道是否有可能交叉引用两个不同的类实例,一个指向在不同命名空间中定义的引用,另一个在第二个类中定义的变量指向第一个。
假设我有一个main.js
文件,我在其中定义了一个类,该类使用在另一个命名空间中定义的一些实例变量,比如说 in 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>
实际上,例如,如果您在 firebug 上尝试此代码,则该代码可以按预期工作,但是在我的真实应用程序上使用相同的逻辑,这非常复杂,我Main is undefined
在控制台中遇到错误。我知道可以使用 AMD 和 Require.js 来模拟真实的类模块,但我现在不想继续使用 AMD。