博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ES6 对象的扩展
阅读量:5889 次
发布时间:2019-06-19

本文共 1133 字,大约阅读时间需要 3 分钟。

ES6 允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。

const foo = 'bar';const baz = {foo};baz // {foo: "bar"}// 等同于const baz = {foo: foo};
function f(x, y) {  return {x, y};}// 等同于function f(x, y) {  return {x: x, y: y};}f(1, 2) // Object {x: 1, y: 2}

除了属性简写,方法也可以简写。

const o = {  method() {    return "Hello!";  }};// 等同于const o = {  method: function() {    return "Hello!";  }};

函数的name属性,返回函数名。对象方法也是函数,因此也有name属性。

const person = {  sayName() {    console.log('hello!');  },};person.sayName.name   // "sayName"

Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)。

const target = { a: 1 };const source1 = { b: 2 };const source2 = { c: 3 };Object.assign(target, source1, source2);target // {a:1, b:2, c:3}

注意,如果目标对象与源对象有同名属性,或多个源对象有同名属性,则后面的属性会覆盖前面的属性。

const target = { a: 1, b: 1 };const source1 = { b: 2, c: 2 };const source2 = { c: 3 };Object.assign(target, source1, source2);target // {a:1, b:2, c:3}
Object.assign(SomeClass.prototype, {  someMethod(arg1, arg2) {    ···  },  anotherMethod() {    ···  }});// 等同于下面的写法SomeClass.prototype.someMethod = function (arg1, arg2) {  ···};SomeClass.prototype.anotherMethod = function () {  ···};

转载地址:http://vzfsx.baihongyu.com/

你可能感兴趣的文章
[译] 移动技术在改善财务健康方面的作用
查看>>
播放音频的工具类
查看>>
人工智能:是拿什么向奇点迫近的?
查看>>
南京a货翡翠,天津a货翡翠
查看>>
css3 渐变
查看>>
SystemCenter2012SP1实践(26)VMM下HyperV的高可用(下)
查看>>
Hadoop源代码分析(*IDs类和*Context类)
查看>>
钢丝流-BISU的战斗哲学
查看>>
struts2中的自定义拦截器
查看>>
解决opensips启动时出现PID file /var/run/opensips.pid does not exist 的错误
查看>>
33.Azure创建自动伸缩虚拟机规模集(上)
查看>>
Linux基础知识之命令的语法通用格式
查看>>
我的友情链接
查看>>
RAID 磁盘陈列详解
查看>>
[HDFS]HDFS优化-小文件合并.md
查看>>
公司组网核心、汇聚、接入层交换机配置
查看>>
一个IO的传奇一生(2)
查看>>
linux文件描述符
查看>>
C++ const 详解
查看>>
给Github上的项目添加开源协议
查看>>