介绍
小编给大家分享一下ES6中增强的对象字面量的,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!
概述
在ES6中,对象字面量的语法被增强了
更短的属性声明
如果属性的属性名和属性值引用的变量名一致,可以直接省略
让name=癹ack"//es6之前 var obj={名称:名称}//{名称:“jack"}//es6 让obj={name}//{名称:“jack"}
更短的函数声明
如果属性的属性名和属性值(函数)的函数名一致或者属性值(函数)没有函数名,可以省略<代码> 代码>函数关键字和属性名
//es6之前 var obj={总和:函数(a, b){返回一个+ b}}//es6 让obj={总和(a, b){返回一个+ b}}//{总和:函数(a, b){返回一个+ b}}
可动态计算的属性名
属性名可以动态变化
让关键=皀ame" 让obj={(例子):“jack"}//{名称:& # 39;杰克# 39;}
总览
让关键=皀ame" 让年龄=23 让人={ (例子):“jack" getName(){返回“jack"}, 年龄 }//{名称:“jack" getName:函数(){返回“jack"},年龄:23}
使用巴贝尔翻译
源码
让关键=皀ame" 让年龄=23 让人={ (例子):“jack" getName(){返回“jack"}, 年龄 }
翻译后可以发现,使用的是<代码> Object.defineProperty 代码>实现的
“使用strict"; var _person; 函数_defineProperty (obj,键,值){ 如果在obj(关键){ Object.defineProperty (obj,钥匙,{价值:价值,可列举的:没错,可配置:没错,可写:真正}); 其他}{ obj[主要]=价值; } 返回obj; } var关键=皀ame"; var年龄=23; var人=(_person={}, _defineProperty (_person关键,“jack"), _defineProperty (_person,“getName",函数getName () { 返回“jack"; }),_defineProperty (_person,“age"、年龄),_person);
看完了这篇文章,相信你对ES6中增强的对象字面量的有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!