ES6对象的扩展
来源:互联网 发布:finally java return 编辑:程序博客网 时间:2024/04/30 09:32
1. 属性名的简介表示法
const foo = 'bar';const baz = { foo, hello(){ console.log(this.foo); }};baz.hello();//bar
上面分别是对对象的属性和方法的
2.属性名表达式
const foo = ‘bar’;
const baz = {
[foo]:’foo’,
hello(){
console.log(this.bar);
}
};
baz.hello();//foo
属性名表达式可以对[]语句求值,其值为新的属性名。对求值结果为一个字符串的变量可以使用。但如果所求值为一个对象,会生成[object Object]字符串,容易误解。尽量不要使用。3.对象方法的name属性
const foo = ‘bar’;
const baz = {
[foo]:’foo’,
hello(){
console.log(this.bar);
}
};
console.log(baz.hello.name);//hello
对get和set方法例外对由function和bind绑定的方法例外4. Object.is(a,b)方法-------------------相当于 a===b;但略有不同
console.log(Object.is(NaN,NaN));//true
console.log(Object.is(0,-0));//false
5. Object.assign(target,a,b..)方法================================将所有对象的**可枚举的非继承**属性加入到一个对象中,并返该对象
let newBaz = Object.assign({},baz,{a:1,b:2});
let bazKeys = Object.keys(newBaz);//[ ‘bar’, ‘hello’, ‘a’, ‘b’ ]
注意:1.后面对象的属性会**覆盖**前面对象的属性。若只有一个对象,则返回该对象。2.执行浅拷贝。3.对于数组,会把数组转化为属性为‘0’,‘1’,‘2’...的对象。4.对于取值函数,则是将新属性的值设为所取值(即函数执行后的返回结果)6. 作用 1.为对象添加属性 2.为对象添加方法 `clas.addAtr({a:1,b:2}); var clasKeys = Object.keys(clas);//[ 'addAtr', 'a', 'b' ] ` 3.克隆对象*// 注意不能直接克隆继承链* 4.拷贝对象 5.添加默认值*//后者覆盖*7.属性的可枚举性
let o = Object.getOwnPropertyDescriptor(clas,’addAtr’);
o={ value: [Function: addAtr],
writable: true,
enumerable: true,
configurable: true }
其中 enumerable为可枚举属性
let o = Object.getOwnPropertyDescriptor(Object.prototype,’toString’);
{ value: [Function: toString],
writable: true,
enumerable: false,
configurable: true }
“`
for … in..
Object.keys()
JSON.stringfy()
Object.assign()
会忽略掉 enumerable: false的属性
- ES6对象的扩展
- 【es6】对象的扩展
- ES6--对象的扩展
- ES6对象的扩展
- ES6-Array对象的扩展
- 【ES6】对象的扩展2
- es6入门-对象的扩展
- ES6--对象、函数的扩展
- 07、ES6 对象的扩展
- ES6(八) 对象的扩展
- ES6--内置对象的扩展
- ES6-对象的扩展-对象的扩展运算符
- ES6 对象的扩展 简单测试
- 自学-ES6篇-对象的扩展
- Math 对象es6上面的扩展
- es6 javascript对象的扩展运算符
- ES6之路--对象的扩展
- ES6 —(对象的扩展)
- AndFix带你一步步集成,从放弃到成功
- tomcat日志过大问题解决
- 《intellij idea学习经历》-04- intellij idea如何打包
- java 注解
- Spring MVC 解决不出的问题
- ES6对象的扩展
- [Python]
- MAVEN的使用入门
- 设计模式学习-代理模式
- nrm切换npm源利器
- iOS UITextField编辑时文本偏移问题?
- 幸运的袋子
- React-实现上拉加载更多
- Java 四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor