Chrome扩展开发:如何将window.Ab重命名为有意义的对象名?
问题修正方案
你当前写法的问题在于,使用.访问window对象属性时,只能跟属性名的字面量,而你这里的meaningfulObjectName是一个变量,此时得用方括号语法来访问。
两种正确写法:
- 直接赋值属性值(最常用场景)
如果只是想把window.Ab的取值绑定到有意义的变量上,直接赋值即可:
const meaningfulObjectName = window.Ab; console.log(meaningfulObjectName); // 输出12345
- 动态属性名访问(适合属性名需要动态生成的场景)
如果确实需要通过变量存储属性名来动态访问,用方括号语法:
const propName = 'Ab'; const meaningfulObjectName = window[propName]; console.log(meaningfulObjectName); // 输出12345
你之前的代码window.meaningfulObjectName其实是在访问window上名为meaningfulObjectName的属性,而非你定义的变量对应的Ab属性,这就是出错的核心原因。
内容的提问来源于stack exchange,提问作者3jay1
相关产品推荐
相关产品推荐

