JS全局变量的问题
发布网友
发布时间:2022-04-22 16:11
我来回答
共4个回答
热心网友
时间:2022-04-22 17:41
在函数内申明好像不行吧
这样能不能满足你的要求:
function myfunc(){
eval("window.g = new Object();");
}
这样在执行 myfunc 的时候就申明了一个全局变量
=========================================
eval 是javascript中的一个内置的方法,用于执行指定的脚本。
window.g = new Object();
在HTML中,window是一个顶级对象,申明window.g就相当于申明了一个全局变量了。
热心网友
时间:2022-04-22 18:59
不可以.
在函数中声明的变量只能在函数中使用,函数调用结束此变量就会被销毁.
而在函数外声明的就不同了.可以一直保留.
热心网友
时间:2022-04-22 20:33
不能在函数内部声明全局变量的..
你的例子中window是一个已经存在的对象.所以可以对window进行设置.
并且window是一个顶级对象,所以你可以在任何地方使用window.g访问.
热心网友
时间:2022-04-22 22:25
函数内不写var就默认就是全局变量
用var声明变量时,会他把添加到最近的可用环境,若不用var则把他添加的父环境中,这就理解了不用var定义的一个变量是全局变量的原因。
function myfunc(){
eval("window.g = new Object();");
}
eval 把字符串转换成js代码
eval("window.g = new Object();");作用是创建一个全局的g
new Object可以理解为类型 Object可以理解是js中的父亲