ES6对象和传统的JS比较起来支持简写,比如说属性简写方法简写,还支持name属性,可以通过他迅速得到函数属性名表达式(如果是用bind方法创造的函数name属性会返回bound加上原函数的名字,Function构造函数创造的函数name属性返回“anonymous”)。

var test = {
sayHi(){
console.log('hi');
}
}
console.log(test.sayHi.name); //sayHi
  下面说的都是对象的拓展方法
  如果将源对象的所有可枚举属性复制到目标对象或者是为对象添加属性或者是方法那么可以使用Object.assign(),注意此方法只能复制自身属性,不可枚举的属性和继承属性都不会被复制!!!如果是重复同名属性,那么会后者覆盖前者。该函数有两个参数,第一个参数是目标对象,第二个参数是源对象。

var a = { a : 'aa' , d : 'dd' };
var b = { a : 'aa' , b : "b" };
var add = { c : 'c' };
console.log(Object.assign(add,a,b));
//{ c: 'c', a: 'aa', d: 'dd', b: 'b' }

  关于判断对象是否可枚举可以使用Object.getOwnPropertyDescriptor()方法,这个方法是JS里面的方法。

var test = { test : "this is test!" };
console.log(Object.getOwnPropertyDescriptor(test,'test'));
/*{ value: 'this is test!', writable: true, enumerable(表示能否通过for-in循环返回属 性): true,configurable: true }*/

  

  ES5中有三个操作会忽略enumerable为false的属性
    1.for...in循环:只遍历对象自身的和继承的课枚举的可枚举属性(不含Symbol属性)。
    2.Object.keys():返回对象自身的所有可枚举属性的键名。
    3.JSON.stringify():只串行化对象自身的可枚举属性。
  ES6新增了两个操作会忽略enumerable为false的属性,另外ES6规定所有Class的原型方法都是不可枚举的
    1.Object.assign():只复制对象自身的可枚举属性。
    2.Reflect.enumerate():返回所有的for...in循环会遍历的属性。

ES6对象及ES6对象简单拓展的更多相关文章

  1. ES6 学习笔记之对象的拓展

    1.属性的简洁表示法 ES6 允许直接写入变量和函数,作为对象的属性和方法.这样书写更加简洁. const foo = 'bar'; const baz = {foo}; baz //{foo: &q ...

  2. es6学习笔记-proxy对象

    前提摘要 尤大大的vue3.0即将到来,虽然学不动了,但是还要学的啊,据说vue3.0是基于proxy来进行对值进行拦截并操作,所以es6的proxy也是要学习一下的. 一 什么是proxy Prox ...

  3. 《深入理解ES6》笔记——扩展对象的功能性(4)

    变量功能被加强了.函数功能被加强了,那么作为JavaScript中最普遍的对象,不加强对得起观众吗? 对象类别 在ES6中,对象分为下面几种叫法.(不需要知道概念) 1.普通对象 2.特异对象 3.标 ...

  4. [译]ES6中的代理对象

    原文:http://ariya.ofilabs.com/2013/07/es6-and-proxy.html 能够拦截在一个对象上的指定操作的能力是非常有用的,尤其是在故障调试的时候.通过ECMASc ...

  5. 【读书笔记】【深入理解ES6】#4-扩展对象的功能性

    对象类别 ES6规范清晰定义了每一个类别的对象. 普通(Ordinary)对象 具有JS对象所有的默认内部行为 特异(Exotic)对象 具有某些与默认行为不符的内部行为 标准(Standard)对象 ...

  6. ES6深入浅出-5 新版对象-1.如何创建对象

    对象属性的加强: 可以通过new Object(), Object.create()方法,或者使用字面量标记(初始化标记)初始化对象. 一个对象初始化器,由花括号/大括号 ({}) 包含的一个由零个或 ...

  7. es6 快速入门 系列 —— 对象

    其他章节请看: es6 快速入门 系列 对象 试图解决的问题 写法繁杂 属性初始值需要重复写 function createPeople(name, age){ // name 和 age 都写了 2 ...

  8. es6中的promise对象

    Promise是异步里面的一种解决方案,解决了回调嵌套的问题,es6将其进行了语言标准,同意了用法,提供了`promise`对象, promise对象有三种状态:pending(进行中) .Resol ...

  9. (1)ES6中let,const,对象冻结,跨模块常量,新增的全局对象介绍

    1.let声明变量,var声明变量,而const声明的常量 2.let与var的区别 let可以让变量长期驻扎在内存当作 let的作用域是分块[ {快1  {快2 }  }每个大括号表示一个独立的块 ...

  10. js es6 map 与 原生对象区别

    区别 object和Map存储的都是键值对组合.但是: object的键的类型是 字符串: map的键的类型是 可以是任意类型: 另外注意,object获取键值使用Object.keys(返回数组): ...

随机推荐

  1. osap一站式分析模型

    运营系统分析平台技术设计: 项目定义于运营系统关键指标的数据分析 关键代码描述: HiveWriter 主要用于写hive表抽象,包括加分区,写hive表,写success文件: import org ...

  2. 九、VueJs 填坑日记之在项目中使用jQuery

    很多人学习 js 都是从 jQuery 开始的,我也不例外.有时候进行一些操作的时候,还是感觉 jQuery 比较好用,那么,我们如何在项目中使用 jQuery 呢?这篇博文带你实践. 引用 jQue ...

  3. 《java.util.concurrent 包源码阅读》22 Fork/Join框架的初体验

    JDK7引入了Fork/Join框架,所谓Fork/Join框架,个人解释:Fork分解任务成独立的子任务,用多线程去执行这些子任务,Join合并子任务的结果.这样就能使用多线程的方式来执行一个任务. ...

  4. 从MVC到Ajax再到前后端分离的思考

    前言 一位小妹去面试前端,前端leader问了"什么是ajax?",答:"接收后台的数据,然后然后自己填充和渲染样式":一位小哥去面试后台,技术经理问了&quo ...

  5. Meteor的初步了解

    最近入职到新一家公司,技术总监给我介绍了一个新技术---Meteor,这是我之前没有接触过的一项技术,我查阅了相关资料,原来这是一项基于Node js的纯Javascript技术,然后给了我们一个项目 ...

  6. OC中只有重写没有重载

    一.类的继承 Objective-c中类的继承与C++类似,不同的是Objective-c不支持多重继承,一个类只能有一个父类,单继承使Objective-c的继承关系很简单,易于管理程序. 二.方法 ...

  7. Linux 链接详解----动态链接库

    静态库的缺点: 库函数被包含在每一个运行的进程中,会造成主存的浪费. 目标文件的size过大 每次更新一个模块都需要重新编译,更新困难,使用不方便. 动态库: 是一个目标文件,包含代码和数据,它可以在 ...

  8. 关于PHP 采集类

    伟大的筒子们,我们需要经常采集. 不知道大家每次采集的时候会不会烦躁,不用八爪鱼,不用PYTHON 是不是感到手无力,看到正则匹配每次匹配不对,一换采集内容就是头疼,重新拼写正则? 不要说是高手 ,就 ...

  9. js 去掉数组中重复值,不重复的值保留

    这里介绍2中方式:js代码如下 var arr=[1,7,3,2,1,4,12,3,"3",3] function compare(arr) { var result = [], ...

  10. centos yum install redis

    linux下yum安装redis以及使用 1.yum install redis      --查看是否有redis   yum 源 [root@localhost ~]# yum install r ...