我有2个JS文件,我需要将2个变量从一个传递到另一个。为此,我在B.js中将变量声明为全局变量,然后尝试从A.js更改它们。这没用。 (我已经在html中正确引用了两个文件)。现在,我试图通过从A.js调用一个函数并将vars作为参数传递来更改B.js的vars。
B.js:
var re = '';
var un = '';
function init(response_string, username_string) {
re = response_string;
un = username_string;
}
A.js:
init(response, un);
B.js中的函数正确获取了参数,但是我似乎找不到改变全局变量的方法。它们仍然是“”。
编辑:我从A.js解析的值是非空字符串。我也尝试过这样做:init('test', 'test');
但是全局变量仍然没有受到影响。
编辑2: 这是更多代码: index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Page Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" media="screen" href="main.css">
<script src="A.js"></script>
<script src="B.js"></script>
</head>
<body>
<input type="text" name="" id="inp">
<a href="" onclick="pass()">Go</a>
</body>
</html>
A.js:
function pass() {
var text = document.getElementById('inp').value;
pass2(text);
}
B.js:
var global_string = '';
function pass2(v) {
console.log(v);
global_string = v;
}
答案 0 :(得分:1)
您正在调用带有两个变量作为参数的init(response, un)
,但是尚未定义第一个变量response
,第二个变量un
已定义为空字符串''
位于代码开头。
使用两个非空字符串调用init()
,您会看到全局变量un
和re
得到正确的更新。
var re = '';
var un = '';
function init(response_string, username_string) {
re = response_string;
un = username_string;
}
init("test1","test2");
console.log(re);
console.log(un);