是否可以在一个名为first.js的文件中使用另一个名为second.js的文件中的变量?
js包含一个名为colorcodes的变量。
是否可以在一个名为first.js的文件中使用另一个名为second.js的文件中的变量?
js包含一个名为colorcodes的变量。
当前回答
我的做法可能有点不同。我不知道为什么要用这个语法,从很久以前的书上抄下来的。但是我的每个js文件都定义了一个变量。第一个文件,没有任何原因,被称为R:
var R =
{
somevar: 0,
othervar: -1,
init: function() {
...
} // end init function
somefunction: function(somearg) {
...
} // end somefunction
...
}; // end variable R definition
$( window ).load(function() {
R.init();
})
然后,如果我有一段很大的代码,我想要隔离,我把它放在一个单独的文件和一个不同的变量名,但我仍然可以引用R变量和函数。我把这个新版本叫做TD,完全没有理由:
var TD =
{
xvar: 0,
yvar: -1,
init: function() {
...
} // end init function
sepfunction: function() {
...
R.somefunction(xvar);
...
} // end somefunction
...
}; // end variable TD definition
$( window ).load(function() {
TD.init();
})
你们可以看到在TD中,sepfunction我称之为r。somefunction。 我意识到这没有提供任何运行时效率,因为两个脚本都需要加载,但它确实帮助我保持我的代码有组织。
其他回答
我的做法可能有点不同。我不知道为什么要用这个语法,从很久以前的书上抄下来的。但是我的每个js文件都定义了一个变量。第一个文件,没有任何原因,被称为R:
var R =
{
somevar: 0,
othervar: -1,
init: function() {
...
} // end init function
somefunction: function(somearg) {
...
} // end somefunction
...
}; // end variable R definition
$( window ).load(function() {
R.init();
})
然后,如果我有一段很大的代码,我想要隔离,我把它放在一个单独的文件和一个不同的变量名,但我仍然可以引用R变量和函数。我把这个新版本叫做TD,完全没有理由:
var TD =
{
xvar: 0,
yvar: -1,
init: function() {
...
} // end init function
sepfunction: function() {
...
R.somefunction(xvar);
...
} // end somefunction
...
}; // end variable TD definition
$( window ).load(function() {
TD.init();
})
你们可以看到在TD中,sepfunction我称之为r。somefunction。 我意识到这没有提供任何运行时效率,因为两个脚本都需要加载,但它确实帮助我保持我的代码有组织。
如果你存储你的colorcodes在一个全局变量,你应该能够访问它从任何javascript文件。
使用Node.js,你可以通过模块导出变量。
//first.js
const colorCode = {
black: "#000",
white: "#fff"
};
module.exports = { colorCode };
然后,使用require在第二个文件中导入模块/变量。
//second.js
const { colorCode } = require('./first.js')
你可以使用Webpack/Babel在ES6中使用导入和导出方法,但在Node.js中你需要启用一个标志,并使用.mjs扩展名。
您可以使用export从第一个文件导出变量。
//first.js
const colorCode = {
black: "#000",
white: "#fff"
};
export { colorCode };
然后,使用import在第二个文件中导入变量。
//second.js
import { colorCode } from './first.js'
出口- MDN
正如Fermin所说,全局作用域中的变量在声明后应该可以被所有加载的脚本访问。您也可以使用window的属性或(在全局作用域)this来获得相同的效果。
// first.js
var colorCodes = {
back : "#fff",
front : "#888",
side : "#369"
};
... 在另一个文件中…
// second.js
alert(colorCodes.back); // alerts `#fff`
... 在你的HTML文件中…
<script type="text/javascript" src="first.js"></script>
<script type="text/javascript" src="second.js"></script>