注意环境,这是一段Node.js后端代码,并非在html中的js代码.
赋值函数存在一个与变量名称相同的参数,如何在不改参数名的情况下进行赋值?
// test.js
var x;// 在最外层定义变量x
init(12)// 调用函数对x进行赋值
console.log(`x:${x}`);// 输出赋值结果
// 函数存在一个与变量名称相同的参数,如何在不改参数名的情况下进行赋值?
function init(x){
// 注意这是nodejs后端,所以无法使用window.x=x
x = x;
}
另外还有个疑问,该段代码中的变量x是全局变量还是局域变量?
如果是html中的js代码,x无疑是属于window对象的全局变量.
但是如果是在Node.js的后端环境下,全局对象是global,用户代码并非处于最外层,只有用this.x或var global.x定义的才是全局变量才对.
我的猜想是:
该js文件在Node.js中是一个模块,那x就应该是属于该模块的一个局域变量,和内部函数中定义的局域变量属于作用域链的上下级关系.
global对象作用域->模块对象作用域->函数对象作用域
可是为什么在模块中使用this指向的却是global?
global