当前位置:网站首页>ES6-对象
ES6-对象
2022-07-31 05:18:00 【春意迟迟、】
(1)对象字面量
属性的简洁表示法:ES6允许对象的属性直接写变量,这时候属性名是变量名,属性值是变量值。
<script> var sum = 10 //普通写法 //key值是一个常量,value值是变量值,这两个sum意义不同 var obj1 = { sum: sum } //标准写法:{"sum":sum} console.log(obj1.sum) //10 //对象的字面量:允许对象的属性直接写变量名,属性值为变量值 //es6d的对象成员可以是一个变量名,把变量名作为对象的属性名, //变量值作为对象的属性值(易于读取 提高开发效率) var obj2 = { sum } console.log(obj2.sum) //方法简写:函数根据业务有很多别称:构造函数 静态函数 //方法 事件处理程序(监听器) 闭包 回调函数 钩子函数等 var obj3 = { name: "rose", flower: function () { } } //name是对象的成员,flower function(){}是对象的方法 //方法可以简写为: var obj4 = { name: "rose", flower() {}//flower function(){} 是一样的 } //对象的成员名可以是表达式 const obj = { ["he" + "llo"]() { console.log(111) return "Hi"; } } //调用的时候将字符串进行拼接 console.log(obj.hello()) //"Hi" </script>注:属性的简洁表示法和属性名表达式不能同时使用,否则会报错
(2)对象的扩展运算符
拓展运算符(...)用于取出参数对象所有可遍历属性然后拷贝到当前对象。
<script> var obj1 = { name: "rose", age: 20 } var person = { ...obj1 } console.log(person)//{name:"rose",age:20} //合并两个对象 var obj2 = { id: 1, tel: "187***" } person2 = { ...obj1, ...obj2 } console.log(person2)//{name:"rose",age:20,id:1,tel:"187***"} //自定义的属性在拓展运算符后面,则拓展运算符对象内部同名的属性将被覆盖掉。 let person3 = { name: "Amy", age: 15 }; let someone = { ...person3, name: "Mike", age: 17 }; console.log(someone); //{name: "Mike", age: 17} //自定义的属性在拓展运算度前面,则变成设置新对象默认属性值。 let person4 = { name: "Amy", age: 15 }; let someone1 = { name: "Mike", age: 17, ...person4 }; console.log(someone1); //{name: "Amy", age: 15} //拓展运算符后面是空对象或null或者undefined,没有效果也不会报错。 let a = { ...{}, a: 1, b: 2 }; console.log(a); //{a: 1, b: 2} let b = { ...null, ...undefined, a: 1, b: 2 }; console.log(b); //{a: 1, b: 2} </script>注:自定义的属性在拓展运算符后面,则拓展运算符对象内部同名的属性将被覆盖掉。
自定义的属性在拓展运算度前面,则变成设置新对象默认属性值。
拓展运算符后面是空对象或null或者undefined,没有效果也不会报错。
(3)对象的新静态方法
Object.is(value1, value2):用来比较两个值是否严格相等,与(===)基本类似。
<script> //Object.is()方法 Object.is("a", "a") //true Object.is(1, 1) //true Object.is({ name: "rose" }, { name: "rose" }) //false Object.is([1, 2], [1, 2]) //false //Object.is()方法与 === 的区别 //一是+0不等于-0 Object.is(+0, -0); //false +0 === -0 //true //二是NaN等于本身 Object.is(NaN, NaN); //true NaN === NaN //false </script>Object.is()与===是有区别的
边栏推荐
- Cholesterol-PEG-Azide CLS-PEG-N3 Cholesterol-PEG-Azide MW:3400
- 离线安装activeMq
- Three methods of accessing image pixels in opencv
- Virtual machine view port number process
- 在 AWS 上从零开始设置 Incredibuild 构建系统
- 力扣.找到打字符串中所有字母异位词
- map和set
- 力扣.剑指offer05.替换空格
- Use usb_cam to open multiple cameras at the same time
- VRchat_udon脚本介绍:傻瓜式教程教你如何实现VRchat地图的功能
猜你喜欢

链表理论基础

数据分析之SQL面试真题

cenos7安装cmake-3.22.2

Learning and understanding of ROS service programming

堆和栈的区别

ImportError: cannot import name 'Xxxx' from partially initialized module 'xx.xx.xx'

DSPE-PEG-Biotin, CAS: 385437-57-0, phospholipid-polyethylene glycol-biotin prolongs circulating half-life

UR3机器人雅克比矩阵

Pytorch study notes 13 - Basic_RNN

Unity软件中UGUI和NGUI的多语言开发
随机推荐
力扣.找到打字符串中所有字母异位词
学习JDBC之获取数据库连接的方式
[Solved] ssh connection report: Bad owner or permissions on C:\\Users/XXX/.ssh/config
在 AWS 上从零开始设置 Incredibuild 构建系统
变更管理与 DevOps —— 二者同时进行吗?
ROS subscription to multiple topics time synchronization problem
Phospholipids-Polyethylene Glycol-Active Esters for Scientific Research DSPE-PEG-NHS CAS: 1445723-73-8
C语言数组的深度分析
Shell/Vim related list
C语言结构体(必须掌握版)
离线安装activeMq
Evaluating Machine Learning Models - Excerpt
关于Iframe
解决background-size:cover时图片铺满但显示不完整?
CAS:474922-22-0 Maleimide-PEG-DSPE Phospholipid-Polyethylene Glycol-Maleimide Brief Description
力扣.三数之和/四数之和
衡量 DevOps 成功与否的重要度量指标
Unity版本升级问题总结
Tensorflow——演示
2021-09-30