是否可以在名为first.js
的另一个文件中使用名为second.js
的文件中的变量?
first.js
包含一个名为colorcodes
的变量。
答案 0 :(得分:153)
正如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>
答案 1 :(得分:15)
您可以使用 export 从第一个文件导出变量。
//first.js
const colorCode = {
black: "#000",
white: "#fff"
};
export { colorCode };
然后,使用 import 将变量导入第二个文件。
//second.js
import { colorCode } from './first.js'
答案 2 :(得分:13)
这应该工作 - 在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,也许是其他浏览器)
答案 3 :(得分:10)
我确实喜欢answer above所说的,但是,它并没有和我合作
因为我.data
num db 22
multiplier db 20
divide db 10
digit1 db ?
digit2 db ?
digit3 db ?
digit4 db ?
.code
MOV AL,num
MUL multiplier
;----22 x 20 = 440
MOV BH,AH
;----AH stores 04?? AL stores 40?
;----40
DIV divide
MOV digit1,AH
MOV digit2,AL
;----04
MOV AL,BH
DIV divide
MOV digit3,AH
MOV digit4,AL
;---display
MOV AH,02H
MOV DL,digit1
INT 21H
;---same for digit2,3,4
这些变量是declaring
JQuery inside
因此请确保在
$( document ).ready()
标记内声明变量而不是其他地方
答案 4 :(得分:4)
我遇到了amplify.js。它使用起来非常简单。要存储一个值,我们称之为“myValue”,你可以:
amplify.store("myKey", "myValue")
要访问它,你可以
amplify.store("myKey")
答案 5 :(得分:2)
如果您将颜色代码存储在全局变量中,您应该可以从另一个javascript文件访问它。
答案 6 :(得分:2)
我可能会这样做有点不同。我不知道为什么我使用这种语法,很久以前从一本书中复制了它。但是我的每个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&#39; sepfunction&#39;我称之为R.somefunction。 我意识到这并没有提供任何运行时效率,因为两个脚本都需要加载,但它确实帮助我保持我的代码组织。
答案 7 :(得分:2)
这是一个很老的问题,但我将提供一个自 ES6 以来可用的现代解决方案 - export 和 import:
在first.js
中:
let colorcodes = <whatever>;
export default colorcodes //or a different export statement
在second.js
中:
import colorcodes from <path-to-first.js> //or a matching import statement
答案 8 :(得分:0)
一种最佳方法是使用窗口。 INITIAL_STATE
>>> print(repr("A'B"))
"A'B"
>>> print(repr('A"B'))
'A"B'
答案 9 :(得分:0)
使用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中,您需要enable a flag, and uses the .mjs extension.