在全局中定义了一个变量,我想在局部中给这个变量赋值,怎样也能改变这个全局变量的值

varInputLength=InputBlur.length;console.log(InputLength);vardiv=document.getElementBy... var InputLength=InputBlur.length;
console.log( InputLength);
var div=document.getElementById("divid");
for(var i=0;i<InputLength;i++){
InputBlur[i].onblur=function(){
console.log("顶部:"+InputLength);
InputLength=InputBlur.length;//InputBulr.length已经发生了变化与全局中的不等
就是说,把function中的InputBlur.length的值赋给全局的InputLength
展开
 我来答
膨胀胡
2016-11-23 · TA获得超过115个赞
知道小有建树答主
回答量:93
采纳率:0%
帮助的人:65.5万
展开全部
首先我感觉你的代码写的就有问题,为什么一开始赋值了,下面的循环里面还要赋值;其次循环里面怎么能够进行单纯地赋值,应该是压栈才对;最后我想知道你的“InputLength
”到底是变量还是数组,要是变量的话,你写的差不多没错了,但是赋值之后要立马写方法,不然你的值在下次赋值的时候不就被覆盖了吗,要是是数组的话,要进行压栈的方法,就不是=就行的了,开头的定义也不对,应该是var InputLength=[]
更多追问追答
追问
InputBlur.length在onblur发生的时候会增加,但是我也需要全局的InputBlur.length跟着增加。
追答
首先我理一下思路,你的 InputLength 是你定义的全局变量,InputBlur.length 是实际的长度,系统定义的对吧,然后我们假设一开始定义的时候 InputBlur.length = 3,并且赋值给了 InputLength ,那么 InputLength = 3,for循环就会执行3次(这个在程序开始运行的时候就定义完了3次,你在循环里面再给 InputLength 赋多少值都没用了),循环每一次,都会把 InputBlur.length 的值赋值给 InputLength(因为你在外面定义的全局变量,所以它永远就是全局变量,不管在什么地方进行赋值都是) ,你可以在循环里面赋值完成之后打印(console.log),会出现3次结果,因为循环了3次,但是当你在外面调用这个 InputLength 的时候,他就是第三次的值了,因为前两次的值都被后一次的赋值给覆盖了
爱可生云数据库
2020-11-09 · MySQL开源数据库领先者
爱可生云数据库
爱可生,金融级开源数据库和数据云服务整体解决方案提供商;优秀的开源数据库技术,企业级数据处理技术整体解决方案提供商;私有云数据库云服务市场整体解决方案提供商。
向TA提问
展开全部

全局变量的修改会保存在两处:

  • 数据⽬录下的 mysqld-auto.cnf持久化信息以 json 格式保存,metadata 记录了这次修改的用户及时间信息。文件中还区分了变量的类型:mysql_server(动态变量)和 mysql_server_static_options(只读变量);

  • 在数据库启动时,会首先读取其他配置⽂件,最后才读取 mysqld-auto.cnf 文件。不建议⼿动修改 mysqld-auto.cnf ⽂件,其可能导致数据库在启动过程中因解析错误⽽失败。如果出现这种情况,可⼿动删除 mysqld-auto.cnf ⽂件或设置 persisted_globals_load 为 off 来避免该⽂件的加载。

    2. 表 performance_schema.persisted_variable

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式