Javascript 编写使用点表示法访问对象属性的函数?

Javascript 编写使用点表示法访问对象属性的函数?,javascript,object,Javascript,Object,主题:对象 副标题:使用点括号表示法访问属性: //对象 让宇宙飞船={ “燃料类型”:“涡轮燃料”, “现役”:没错, 母星:“地球”, numCrew:5 }; //写入使用点表示法访问对象属性的函数 让returnAnyProp1=(objectName1,propName1)=>objectName1.propName1; console.log(returnAnyProp1(宇宙飞船,'homePlanet'); //返回未定义的 //直接访问 console.log(宇宙飞船“ho

主题:对象 副标题:使用点括号表示法访问属性:

//对象
让宇宙飞船={
“燃料类型”:“涡轮燃料”,
“现役”:没错,
母星:“地球”,
numCrew:5
};
//写入使用点表示法访问对象属性的函数
让returnAnyProp1=(objectName1,propName1)=>objectName1.propName1;
console.log(returnAnyProp1(宇宙飞船,'homePlanet');
//返回未定义的
//直接访问
console.log(宇宙飞船“homePlanet”)

//返回错误:意外字符串。
您需要索引器:

let returnAnyProp1 = (objectName1,propName1) => objectName1[propName1];
您拥有它的方式意味着实际访问名为
propName1
的属性


您的直接访问模式不起作用。

简而言之,您不能对此使用点符号

当你这样做的时候

let returnAnyProp1 = (objectName1,propName1) => objectName1.propName1;
它所做的是检查对象中名为“propName1”的属性。它没有传递“propName1”的值。它所做的是对对象进行物理检查,以查看是否有任何名为“propName1”的属性

要解决这个问题,必须使用括号表示法

let returnAnyProp1 = (objectName1,propName1) => objectName1[propName1];

如果一个对象没有特定的属性,访问它将给出未定义的
。例如,
const o={};o[“不存在”]==未定义