Javascript 以字符串形式访问对象本身的PropertyName

Javascript 以字符串形式访问对象本身的PropertyName,javascript,Javascript,我有这样的定义 var obj = { abcdefghijkl: 'abcdefghijkl', other_key: 1234 }; 我可以在Javascript中将get属性名本身的对象定义为字符串吗?像这样 var obj = { abcdefghijkl: getSelfPropertyName, other_key: 1234 }; 我不想要这个。abcdefghijkl 我可以在Javascript中将get属性名本身的对象定义为字符串吗 不,没有快捷方式机制允许您使用与对象初

我有这样的定义

var obj = { abcdefghijkl: 'abcdefghijkl', other_key: 1234 };
我可以在Javascript中将get属性名本身的对象定义为字符串吗?像这样

var obj = { abcdefghijkl: getSelfPropertyName, other_key: 1234 };
我不想要
这个。abcdefghijkl

我可以在Javascript中将get属性名本身的对象定义为字符串吗

不,没有快捷方式机制允许您使用与对象初始值设定项中的属性名称相同的值定义属性

您可以分两步完成:

var s=“abcdefghijkl”;
var obj={other_key:1234};
obj[s]=s;

控制台日志(obj)您可以使用ES6功能,
var obj={abcdefghijkl:'getSelfPropertyName',其他_键:1234},
p=新代理(obj{
获取:函数(目标、道具){
返回目标[prop]=“getSelfPropertyName”?属性:目标[prop];
}
});

console.log(p.abcdefghijkl);/'abcdefghijkl'
这是一个通常可以通过构造模式的变体来解决的问题。让我们使用经典的方法

函数MyObject(…道具){
props.forEach((p,i)=>此[p]=i?“默认值”:p);
}
var obj=新的MyObject(“其他道具”、“还有另一个”);

控制台日志(obj)请添加用例。您的意思是避免键入两次?如果将其作为变量,则可以执行以下操作:
var obj={[my_string]:my_string,other_key:1234}
,但您无法以显示的方式获取它。另外,我展示的示例使用ES6语法,因此旧浏览器无法处理它。谢谢@t.J.Crowder您帮助我节省了时间。