是否可以在另一个名为second.js的文件中使用名为first.js的文件中的变量?
second.js
first.js
first.js包含一个名为colorcodes的变量。
colorcodes
如果你存储你的colorcodes在一个全局变量,你应该能够访问它从任何javascript文件。
正如Fermin所说,全局作用域中的变量在声明后应该可以被所有加载的脚本访问。你也可以使用window或(在全局作用域中)this的属性来获得相同的效果。
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>
这应该可以工作-在firstfile中定义一个全局变量,并从secondfile中访问它:
<script src="/firstfile.js"></script> <script src="/secondfile.js"></script>
firstfile.js:
var colors = { text:'#000000', background:'#aaaaaa', something_else:'blue' };
secondfile.js:
do_something_with(colors.background);
注意,加载脚本文件的顺序对于某些浏览器(当然是IE6,也可能是其他浏览器)很重要。
我遇到了amplify.js。使用起来真的很简单。要存储一个值,让我们称它为“myValue”,你需要:
amplify.store("myKey", "myValue")
而要进入它,你需要
amplify.store("myKey")
我确实喜欢以上回答说,但它没有为我工作,因为我是在jQuery $( document ).ready()声明这些变量。
$( document ).ready()
因此,请确保在<script>标记中声明变量,而不是在其他地方。
<script>
我的做法可能有点不同。我不知道为什么要用这个语法,从很久以前的书上抄下来的。但是我的每个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。 我意识到这没有提供任何运行时效率,因为两个脚本都需要加载,但它确实帮助我保持我的代码有组织
可以使用出口从第一个文件导出变量。
//first.js const colorCode = { black: "#000", white: "#fff" }; export { colorCode };
然后,在第二个文件中使用进口导入变量。
//second.js import { colorCode } from './first.js'
export - MDN
使用Node.js,你可以通过模块导出变量。
//first.js const colorCode = { black: "#000", white: "#fff" }; module.exports = { colorCode };
然后,使用require在第二个文件中导入模块/变量。
//second.js const { colorCode } = require('./first.js')
你可以使用Webpack/Babel在ES6中使用import和export方法,但在Node.js中你需要启用一个标志,并使用.mjs扩展名。
import
export