(精华)2020年6月25日 JavaScript高级篇 对象属性
发布日期:2021-06-29 15:04:33
浏览次数:2
分类:技术文章
本文共 2883 字,大约阅读时间需要 9 分钟。
一:自有属性
// ----------实例属性,自有属性----------var obj01 = { };obj01.name = 'laney';obj01.action = function () { console.log('function');}obj01['from'] = '中国';Object.defineProperty(obj01, 'age', { configurable: true, enumerable: true, //可枚举 value: "20", writable: true});//----------原型继承属性----------var o2 = { };o2.x = 1;var p = Object.create(o2);p.__proto__ === o2 //truevar k1 = Object.create(null); //无原型属性var m2 = Object.create(Object.prototype); // m2 = {};var m3 = Object.create(Object.prototype, { name: { value: 'alice', configurable: true }});//----------合并对象属性(新对象)----------var ob01 = { name: '122', age: '10'}var ob02 = { age: '20'}var ob03 = { run: 'ok'}const copy = Object.assign({ }, ob01, ob02, ob03); //从右到左合并const copy2 = Object.assign(ob01, ob02, ob03); //从右到左合并//----------删除对象属性----------var onePerson = { age: '20', weight: 50, name: 'alice'};var otherPerson = Object.create(onePerson);otherPerson.name = 'laney';//删除delete ,只能删除实例属性,不能删除继承属性delete otherPerson.namedelete otherPerson.weight//----------判断属性来源----------var flower = { name: '玫瑰', color: 'red'};var flower02 = Object.create(flower);flower02.size = '20';flower02.from = 'china';Object.defineProperty(flower02, 'age', { // configurable: true, // enumerable: true, value: "20", writable: true});'name' in flower02 //true 'size' in flower02 //trueflower02.hasOwnProperty('name') //falseflower02.hasOwnProperty('size') //true//----------可枚举的实例属性----------var keys = Object.keys(flower02); //实例属性 - 可以枚举的var values = Object.values(flower02);//实例属性 - 可以枚举和不可枚举var p2 = Object.getOwnPropertyNames(flower02);//前提是 定义必须可以枚举for (var key in flower02) { console.log('------'); console.log(key); console.log(flower02[key]) // size,from,name,color - 实例属性 继承 // age 不可枚举 }
二:访问器属性
var man = { name: "张三", age: 24, color: 'red'};var person1 = JSON.stringify(man); //序列化var person2 = JSON.stringify(man, ["name", "age"]); //过滤var person3 = JSON.stringify(man, ["name", "age"], 8); //格式化var obj = { };Object.defineProperty(obj, 'age', { configurable: false, //不能删除 writable: true, //能否修改 enumerable: true, //是否可枚举 value: 22});delete obj.age // false 不能删除 obj.age = 30 //true 能修改Object.defineProperties(obj, { name: { value: 'laney', writable: true, enumerable: true, configurable: true }, age: { configurable: false, //不能删除 writable: false, //能否修改 enumerable: true, //是否可枚举 value: 22 }})obj.age = 30//访问器属性var emp = { _name: 'laney', _age: '20'};Object.defineProperty(emp, 'otherName', { enumerable: true, configuration: true, get: function () { return this._name }});emp.otherNameemp.otherName = 'alise'; //不能修改, 因为没有set
转载地址:https://codeboy.blog.csdn.net/article/details/106954530 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月29日 19时27分23秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
DRF框架---前言(简单使用)
2019-04-29
字符串外面是b“ “的转换 -亲测有效
2019-04-29
单通道和多通道卷积
2019-04-29
npy文件和pkl文件的保存和读取
2019-04-29
middle-判断二分图-深度优先和广度优先
2019-04-29
买卖股票的最佳时机
2019-04-29
AUC粗浅理解笔记记录
2019-04-29
torch 模型运行时间与forward没对应的可能原因
2019-04-29
JavaScript 的addEventListener() 事件监听详解!
2019-04-29
上传图片到阿里云OSS和获取上传图片的url的详解 !
2019-04-29
Kafka为什么这么快?
2019-04-29
Java 生产者和消费者面试题
2019-04-29
生产者消费者问题
2019-04-29
本机电脑连接虚拟机redis失败解决方法
2019-04-29
DM365 应用层gpio控制
2019-04-29
linux i2c子系统abc
2019-04-29
力扣的环形链表解法 (Python)
2019-04-29
CSS3 帧动画(Sprite,直译叫雪碧图)
2019-04-29
Java 父线程与子线程相互通信的方法
2019-04-29
Redis 六种淘汰策略和三种删除策略
2019-04-29