ES6——对象扩展

来源:互联网 发布:pets考试有用吗 知乎 编辑:程序博客网 时间:2024/05/17 23:31

新增方法

简洁表示法


实例

先定义变量并赋值,

es5:对象属性等于变量

es6:直接写变量名

let o=1;let k=2;let es5={o:o,k:k};let es6={o,k};console.log(es6); //{o:1 , k:2}


属性是函数,忽略function

let es5_method={        hello:function(){            console.log('hello');        }};let es6_method={        hello(){            console.log('hello');        }};es6_method.hello(); // hello



属性表达式


es5:key值必须是绝对值
es6:key值可以是变量,可以是表达式

let a='b';let es5_obj={    a:'c'};let es6_obj={    [a]:'c'   // b:c}



Object相关

Object.is() 是否相等


功能上与“===”一样。


实例

console.log('字符串',Object.is('abc','abc'));  // trueconsole.log('数组',Object.is([],[]));  // false

数组实质上是引用,所以哪怕它们的值相等,引用地址还是不同,所以返回false。



Object.assign() 浅拷贝

语法

Object.assign( {接收拷贝信息的对象},{被拷贝的对象} )

返回值

一个新的对象,包含这两个对象的内容。


实例

console.log('拷贝',Object.assign({a:'a'},{b:'b'}));  // {a: "a", b: "b"}



Object.entries() 输出key和value


同数组中的用法

输出结果:数个数组


实例

let test = {k:123,b:23565};for (let [key,value] of Object.entries(test)){    console.log([key,value]);  // ["k", 123]  ["b", 23565]}
原创粉丝点击