首页 > 解决方案 > 在不先创建父对象的情况下为对象参数赋值

问题描述

如何在其父对象尚不存在的嵌套对象中为特定参数赋值?

var obj = {
  'obj1' : {
    'obj1a' : 'obj1a'
  },
  'obj2' : 'obj2'
}

obj.obj3.obj3a = 'obj3a'  // this is what I want to work 

但它给出了一个错误:

TypeError: obj.obj3 is undefined 

javascript不可能递归地创建子参数的父母吗?

如果这根本不可行,是否有任何内置机制来处理此类情况,以免产生此类错误?类似于?. 功能的工作方式。例如:console.log(obj?.obj1?.obj1a)

标签: javascriptnode.jsobject

解决方案


就像@Barmar他在第一条评论中所说的那样。你可以这样做,想:

const obj = {
  obj1:{
    obj1a:'obj1a'
  },
  obj2:'obj2'
}
obj.obj3 = {obj3a:'obj3a'};
console.log(obj);
console.log('--------------------------------------');
console.log(obj.obj3);


推荐阅读