对象扩展
简洁表示法
{
let o = 1,k = 2;
let es5 = {
o: o,
k: k
};
let es6 = {
o,
k
};
console.log(es5, es6); // {o: 1, k: 2} {o: 1, k: 2}
let es5_method = {
hello: function () {
console.log('hello');
}
};
let es6_method = {
hello() {
console.log('hello');
}
};
es5_method.hello(); // hello
es6_method.hello(); // hello
}
属性表达式
{
let a = 'b';
let es5_obj = {
a: 'c'
};
// key值用中括号包起来,就是个表达式
let es6_obj = {
[a]: 'c'
};
console.log(es5_obj, es6_obj); // {a: "c"} {b: "c"}
}
Object.is()
{
// Object.is() 跟 === 的功能是一样的
console.log(Object.is('abc', 'abc'), 'abc' === 'abc'); // true true
// 数组也是引用类型,值虽然都是空,但指向不同的内存地址
console.log(Object.is([], []), [] === []); // false false
}
Object.assign()
{
// Object.assign()实现对象的拷贝(浅拷贝)
// 1、只拷贝对象自身的属性,如果对象有继承,继承的属性不会被拷贝
// 2、只拷贝 可枚举 属性,不可枚举属性不会被拷贝
console.log(Object.assign({}, {a: 'a'}, {b: 'b'})); // {a: "a", b: "b"}
}
Object.entries()
{
// Object.entries() 类似于数组的entries()
let obj = {k: 123, o: 456};
for (let [key, value] of Object.entries(obj)) {
console.log(key, value);
}
// k 123
// o 456
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。