一、 属性的简洁表示法

ES6允许直接写入变量和函数作为对象的属性和方法。意思就是说允许在对象中只写属性名,不用写属性值。这时,属性值等于属性名称所代表的变量。下面分别举一个例子来说明:
属性:
function getPoint(){
var x = 1 ;
var y = 2;
return {x,y}
}
等同于
fucntion getPoint(x,y){
var x = 1 ;
var y = 2;
return {x:x,y:y}
}
测试:
getPoint();//{x:1,y:10}
函数:
var obj = {
fun(){
return "simply function";
}
};
等同于
var obj = {
fun: function(){
return "simply function";
}
}
测试:
obj.fun();//simply function
二、属性名表达式
ES6里允许定义对象的时候用表达式作为对象的属性名或者方法名,即把表达式放在方括号里。
属性
let propKey = 'foo';
let obj = {
[propKey] : true,
['a'+'bc'] : 123
}
测试:
obj.foo; //true obj.abc ; //123
方法
let obj = {
['h'+'ello'](){
return "hello world";
}
}
测试:
obj.hello();//hello world
注意:
属性名表达式与简介表达式不能同时使用。
//错误的
var foo = 'bar';
var bar = 'abc';
var baz = { [foo] };
//正确
var foo = 'bar';
var baz = { [foo] : 'abc'}
三、方法的name属性
这个比较容易理解,直接阐述文字。
函数的name属性返回函数名。对象方法也是函数,因此也有函数名。
四、Oject.is()
Object.is()用来比较两个值yan'ge严格相等。与严格比价运算符(===)的行为基本一致。不同之处只有两个:一是 +0 不等于 -0 ,二是NaN等于自身
+0 === -0 //true NaN === NaN //false Object.is(+0,-0);//false Object.is(NaN,NaN);//true
五、Oject.assign()
Object.assign()方法是用于将源对象的可枚举属性复制到目标对象。它至少需要两个参数,第一是目标对象,后面的全是源对象。
注意:
Object.assign只复制自身属性,不可枚举的属性和继承属性不会被复制demo:
var target = {a:1,b:2};
var source1 = {a:2,c:5};
var source2 = {a:3,d:6};
Object.assign(target,source1,source2);
target//{a:3,b:2,c:5,d:6}
Object.assign可用于处理数组,但是会将其视为对象
Object.assign([1,2,3],[4,5]); //[4,5,3]
其他用处
六、属性的可枚举性
对象的没个属性都有一个描述对象(Descriptor),可通过Object.getOwnPropertyDescriptor(object,prop) ,object表示对象,prop表示对象的里的一个属性,用的时候需要加上引号。描述对象里面有个enumerable(可枚举性)属性,来描述该属性是否可枚举。
ES5中会忽略enumerable为false的属性
for…in循环:只遍历对象自身和继承的可枚举属性(包含继承)Object.keys() :返回对象自身的所有可枚举属性的键名Json.stringify() :只串行化对象自身的可枚举属性ES6新增的操作
Object.assign() : 只复制对象自身的可枚举属性Reflect.enumerate() : 返回所有for…in循环会遍历的属性(包含继承)7. 属性的遍历
ES6中一共有6种方法可以遍历对象的属性。
for…in循环遍历对象自身和继承的可枚举的属性(不含Symbol属性)Object.keys(obj)返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性,但是包含不可枚举属性)Object.getOwnPropertySymbols(obj)返回一个数组,包含对象自身的所有Symbol属性。Relect.ownKeys(obj)返回一个数组,包含对象的所有属性,包含属性名是Symbol或者字符串,也不管是否可枚举。Reflect.enumerate(obj)返回一个Iterator对象,遍历对象自身的和继承的所有可枚举属性(不含Symbol),与for…in相同以上6种方法遍历对象的属性遵守同样的属性遍历次序规则
Reflect.ownkeys({[Symbol()]:0,b:0,10:0,2:0,a:0})
//[‘2','10','b','a',Symbol()]
八、 proto 属性,Object.setPrototypeOf(),Object.getPrototypeOf()
proto 属性
(前后应该有两个下划线,这里没显示出来)。用来读取或者设置当前对象的prototype对象。但是一般不直接对这个属性进行操作,而是通过Object.setProtortypeOf() (写操作)、Object.getPrototypeOf() (读操作)或者Object.create() (生成操作)代替。
Object.setProtortypeOf()
let proto = {};
let obj = { x : 10};
Object.setProtortypeOf(obj,proto);
proto.y = 20;
proto.z = 40;
obj.x //10
obj.y //20
obj.z //40
Object.getProtortypeOf()
function Rectangle(){}
var rec = new Rectangle();
Object.getPrototypeOf(rec) === Rectangele.prototype // true
9. 对象的扩展运算符
ES7中提案,将rest参数/扩展运算符(…)引入对象。
Rest参数
Rest参数用于从一个对象取值,相当于将所有可遍历尚未被读取的属性,分配到制定的对象上。所有的键及其值都会复制到新对象上。需要注意的是rest参数的复制是浅复制,并且也不会复制继承自原型对象的属性。
简单的demo
let {x,y,...k} = {x:2, y:3,z:4,a:5};
x //2
y //3
k //{z:4,a:5}
扩展运算符
扩展运算符用于取出参数对象的所有可遍历属性,复制到当前对象中。
let z = {a:3 ,b:4};
let n = {...z};
n //{a:3,b:4}
扩展运算符还可以合并两个对象。
let a = { c:5,d:6 };
let b = { e:7,f:8 };
let ab = {...a,...b};
ab //{c:5,d:6,e:7,f:7}
扩展运算符还可以自定义属性,会在新对象中覆盖掉原有参数。
let a = {x:1,y:2};
let aWithOverides = {...a,x:3,y:4};
aWithOverides //{x:4,y:4}
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# es6
# 对象扩展
# 扩展
# 函数的扩展
# ES6数组与对象的解构赋值详解
# ES6新特性六:promise对象实例详解
# ES6中定义类和对象的方法示例
# ES6 迭代器与可迭代对象的实现
# ES6知识点整理之对象解构赋值应用示例
# ES6 Promise对象概念与用法分析
# ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
# ES6学习教程之对象字面量详解
# ES6 对象的新功能与解构赋值介绍
# ES6 Promise对象的应用实例分析
# JS面向对象编程——ES6 中class的继承用法详解
# ES6对象操作实例详解
# 遍历
# 会在
# 运算符
# 不含
# 的是
# 还可以
# 多个
# 象中
# 种方法
# 会报
# 是一个
# 都有
# 也有
# 放在
# 也会
# 有个
# 一是
# 下划线
# 将其
# 自定义
相关文章:
建站之星多图banner生成与模板自定义指南
深圳网站制作案例,网页的相关名词有哪些?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
建站DNS解析失败?如何正确配置域名服务器?
建站主机数据库如何配置才能提升网站性能?
建站主机核心功能解析:服务器选择与网站搭建流程指南
招商网站制作流程,网站招商广告语?
太原网站制作公司有哪些,网约车营运证查询官网?
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
婚礼视频制作网站,学习*后期制作的网站有哪些?
制作网页的网站有哪些,电脑上怎么做网页?
如何用y主机助手快速搭建网站?
网站专业制作公司有哪些,做一个公司网站要多少钱?
建站之星安装失败:服务器环境不兼容?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
北京的网站制作公司有哪些,哪个视频网站最好?
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
,网站推广常用方法?
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
黑客如何利用漏洞与弱口令入侵网站服务器?
安云自助建站系统如何快速提升SEO排名?
定制建站价位费用解析与套餐推荐全攻略
如何有效防御Web建站篡改攻击?
常州自助建站费用包含哪些项目?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
如何通过二级域名建站提升品牌影响力?
建站之星CMS五站合一模板配置与SEO优化指南
html制作网站的步骤有哪些,iapp如何添加网页?
如何在阿里云香港服务器快速搭建网站?
北京企业网站设计制作公司,北京铁路集团官方网站?
,柠檬视频怎样兑换vip?
电商网站制作价格怎么算,网上拍卖流程以及规则?
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
网站制作话术技巧,网站推广做的好怎么话术?
网站制作的步骤包括,正确网址格式怎么写?
教育培训网站制作流程,请问edu教育网站的域名怎么申请?
如何彻底卸载建站之星软件?
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
存储型VPS适合搭建中小型网站吗?
网站制作企业,网站的banner和导航栏是指什么?
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?
黑客如何通过漏洞一步步攻陷网站服务器?
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
建站主机功能解析:服务器选择与快速搭建指南
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
在线教育网站制作平台,山西立德教育官网?
行程制作网站有哪些,第三方机票电子行程单怎么开?
*请认真填写需求信息,我们会在24小时内与您取得联系。