赞
踩
对象字面量
JS中的对象:
JavaScript 对象是变量的内容 放置变量或函数
对象字面量是一种简单的键值对数据结构
- let obj = {
- Pcode:{a:'1'},
- pName: 'Apple',
- getData() {
- console.log(obj.Pcode, obj.pName);
- }
- };
- //添加属性
- // obj.Pcode=10001;
- // obj.pName='Apple';
- // obj.getData=function getData(){
- // console.log(obj.Pcode,obj.pName);
- // }
-
- console.log(obj);
JS对象ES6 声明 动态属性 []声明动态的值
- //设置动态属性
- let tValue='Pcode';
- //[]声明动态的值
-
- let obj = {
- [tValue]:{a:'1'},
- pName: 'Apple',
- getData() {
- console.log(obj.Pcode, obj.pName);
- }
- };
-
-
- console.log(obj);
Object.defineProperty(obj,property,descriptor)
Object.defineProperty():方法会在对象上直接定义个新的属性,或者修改现有的属性,并返回此对象,
参数一:obj 绑定属性的目标对象 参数二:property 绑定的属性名
参数三:descriptor
属性描述(配置), 且此参数本身为一个对象属性值1:value 设置属性默认值
属性值2:writable 设置属性是否能够修改
属性值3:enumerable 设置属性是否可以枚举,即是否允许遍历
属性值4:configurable 设置属性是否可以删除或编辑//当使用get 和set 不能设置 writable 和configurable
属性值5:get 获取属性的值
属性值6:set 设置属性的值
- //向对象添加只读属性
- const pro=Object.defineProperty({},'pCode',{
- writable:false, //为false 只读
- configurable:true,
- enumerable:false,
- configurable: true,
- value:1001,
-
- });
-
- const obj=Object.create(pro);
- console.log(obj)
- obj.pCode=1002;
- console.log(obj.pCode)
- delete obj.pCode;
-
-
-
- //使用
- let obj1 = { count : 0, list : [1,2,4] };
-
- let target = {};
-
- for (let key in obj1){
- Object.defineProperty(target,key,{
- value: obj1[key]
- })
- }
- console.log(target);
Object.assign()
方法用于将所有可枚举属性的值从一个或多个源对象分配到目标对象。它将返回目标对象
Object.assign()方法的第一个参数是目标对象,后面的参数都是源对象
- //克隆对象 循环遍历 2:Object.assign
-
- let obj3 = { a: 'First' };
- let obj4=Object.assign({},obj1);
- obj4.a='Second';
- console.log(obj3.a);//First
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。