觉得不好使 结果它好使 js 作用域链是执行时才开始搜索的 所以这段代
码才会正常执行
参考GPT和自己的思路:
你的问题描述比较简洁,但是有些地方还是不够清晰。首先,你说“不好使”的具体表现是什么?其次,你所提供的代码片段不够完整,无法很清楚地理解你的疑问。
根据你提供的信息,我猜测你遇到的问题可能是跟JavaScript的作用域链有关。JavaScript采用词法作用域(静态作用域),也就是说,在函数中定义的变量的作用域是在函数定义时就已经确定的,而不是在函数执行时才确定的。当执行到一个函数时,JavaScript引擎会在当前函数的作用域中寻找变量。如果当前函数的作用域中没有找到变量,就会沿着作用域链向上查找,直到找到该变量为止。
所以,在你提供的代码片段中,如果函数change
内部没有声明变量b
,那么JavaScript引擎就会沿着作用域链向上查找,找到外部作用域中的变量b
。如果外部作用域中也没有变量b
,那么就会继续向上查找,直到找到为止。
如果你遇到了与作用域链相关的问题,可以检查一下你的代码中是否出现了函数嵌套等情况,以及是否在函数内部声明了变量,但是又在其外部使用了变量等。另外,你也可以在浏览器的开发者工具中打开控制台,调试执行过程,寻找问题所在。