当前位置:网站首页>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()与===是有区别的
边栏推荐
- Tensorflow related list
- 通过js禁止ctrl+滚轮放缩浏览器页面,禁止用手势放大
- 能否更上一层楼?探究 CMake 争论
- Session和Cookie,Token
- Four common ways of POST to submit data
- 会话和饼干,令牌
- 【Rhapsody学习笔记】4:Relations
- Redis-Hash
- Cholesterol-PEG-Thiol CLS-PEG-SH Cholesterol-Polyethylene Glycol-Sulfhydryl
- MySQL free installation download and configuration tutorial
猜你喜欢
随机推荐
常见网络攻击与防御方法
vs2022 xlua 集成第三方库编译报错Generator Visual Studio 15 2017 could not find any instance of Visual Studio.
ImportError: cannot import name 'Xxxx' from partially initialized module 'xx.xx.xx'
Webrtc从理论到实践二: 架构
DSPE-PEG-COOH CAS: 1403744-37-5 Phospholipid-polyethylene glycol-carboxy lipid PEG conjugate
5G的用途和工作原理
Pytorch Daily Practice - Predicting Surviving Passengers on the Titanic
关于网络安全法的个人理解
Qt TreeView 问题记录
Cholesterol-PEG-Thiol CLS-PEG-SH Cholesterol-Polyethylene Glycol-Sulfhydryl
虚拟机查看端口号进程
力扣.字母异位词分组
Tensorflow——演示
2021年开发人员的绊脚石:构建时间长
Hyperparameter Optimization - Excerpt
2021-09-30
UR3机器人运动学分析之正运动学分析
Cholesterol-PEG-Azide CLS-PEG-N3 Cholesterol-PEG-Azide MW:3400
UR3机器人运动学分析之逆运动学分析
WIN10,配置adb环境









