JavaScript如何在对象内部获取自身属性的值?
解决对象初始化时内部引用自身属性的问题
你这段代码报错是因为const声明的变量在完全初始化完成前,无法被自身内部访问。当你在key2里写obj.key1时,obj还没完成整个对象的创建,JS引擎还没把它绑定到这个变量名上,所以会抛出引用错误。
下面是几种可行的解决方法:
先初始化对象,再追加属性
const obj = { key1: "value" }; obj.key2 = obj.key1;先让
obj完成初始化,之后再通过外部赋值的方式添加key2,此时obj已经可以正常访问。使用getter方法
const obj = { key1: "value", get key2() { return this.key1; } };getter函数会在你访问
obj.key2的时候才执行,此时对象已经初始化完成,this能正确指向当前对象,而且后续如果key1的值更新,key2也会自动同步。提取共享值到外部变量
const key1Value = "value"; const obj = { key1: key1Value, key2: key1Value };把需要共享的属性值先单独定义,对象的两个属性都引用这个外部变量,避免在对象内部引用未初始化的自身。
内容的提问来源于stack exchange,提问作者Tavuk Döner
相关产品推荐
相关产品推荐

