JavaScript中的对象字面量有什么

  介绍

这篇“JavaScript中的对象字面量有什么”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“JavaScript中的对象字面量有什么”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们进入主题吧。

JavaScript可以做什么

1。可以使网页具有交互性,例如响应用户点击,给用户提供更好的体验。   2 .可以处理表单,检验用户的输入,并提供及时反馈节省用户时间。   3 .可以根据用户的操作,动态的创建页面。   4使用JavaScript可以通过设置饼干存储在浏览器上的一些临时信息。

在ECMAScript 2015之前,JavaScript中的对象字面量(又叫做对象初始化器)是相当简单的,它可以定义2种属性:

<李>

成对的静态属性名和值<代码> {name1: value1}

<李>

通过getter <代码>{得到名称(){. .}}> {集名称(val) {…}}定义的动态计算属性值

说来遗憾,一个简单的例子就可以表示对象字面量的所有可能性:

var  myObject =, {   myString才能:& # 39;value  1 & # 39;   get 才能;输入myNumber (), {   ,,,return  this._myNumber;   ,,},   set 才能输入myNumber(值),{   ,,,this._myNumber =,数量(价值);   ,,},   };   myObject.myString;,//,=祝辞,& # 39;value  1 & # 39;   时间=myObject.myNumber  & # 39; 15 & # 39;;   myObject.myNumber;,//,=祝辞,15

JS是一种基于原型的语言,因此一切都是对象。在对象创建,配置和访问原型时,必须提供一种易于构造的语言。

定义一个对象并设置它的原型是一个常见的任务。最好的方式是直接在对象字面量使用一条语句来设置原型。

不幸的是,字面量的局限性不允许用一个简单的解决方案来实现这一点。必须结合使用<代码> object.create()> var  myProto =, {   ,,propertyExists:函数(名字),{   ,,,return  name 拷贝;   ,,}   };      var  myNumbers =, Object.create (myProto);   输入mynumber [& # 39; arrat& # 39;],=,(1), 6日,7];   myNumbers.propertyExists(& # 39;数组# 39;);,//,=祝辞,真的   myNumbers.propertyExists(& # 39;收集# 39;);,//,=祝辞,假

我认为这种解决方案不够灵活. js是基于原型的,为什么要用原型创建对象那么麻烦?

幸运的是,JavaScript也在慢慢完善. js中许多相当令人不舒服的特性正在一步步的被解决。

这篇文章演示了ES2015是如何解决以上描述的难题,并增加了哪些特性来提升对象字面量的能力:

<李>

在对象构造函数中设置原型

<李>

速写式方法声明

<李>

进行<代码>超级> <李>

可计算的属性名

另外,还有我们可以展望一下将来,看看(草案2)里的新提议:可收集可展开的属性。

 JavaScript中的对象字面量有什么

1。在对象构造函数中设置原型

正如你已知的,访问已创建对象的原型有一种方式是引用<代码> __proto__ 这个getter属性:

var  myObject =, {   ,,名字:& # 39;Hello 世界! & # 39;   };   myObject.__proto__;,//,=祝辞,{}   myObject.__proto__.isPrototypeOf (myObject);,//,=祝辞,真正的

<代码> myObject。__proto__ 返回<代码> myObject>

请注意,不建议将<代码>对象。__ proto__> getter/setter> Object.getPrototypeOf() 和<代码> Object.setPrototypeOf()

好消息是,ES2015允许使用<代码> __proto__> {__proto__: protoObject} 中作为属性名来设置原型。

让我们用<代码> __proto__ 属性为对象初始化,看它是如何改进介绍中描述的不直观方案:

var  myProto =, {   ,,propertyExists:函数(名字),{   ,,,return  name 拷贝;   ,,},   };   var  myNumbers =, {   ,,__proto__: myProto,   ,,数组:[1,6,7),   };   myNumbers.propertyExists(& # 39;数组# 39;);,//,=祝辞,真的   myNumbers.propertyExists(& # 39;收集# 39;);,//,=祝辞,假

JavaScript中的对象字面量有什么