分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

js中的Object

发布时间:2023-09-06 02:32责任编辑:赖小花关键词:js

js中的Object

  1. 浅克隆

    var obj = { ???a: 1, ???b: 2, ???c: 3}方式一: ???var o = Object.assign({}, obj);方式二: ???var {...o} = obj;
  2. 深克隆

    JSON.parse(JSON.stringify(obj))
  3. freeze

    浅冻结,属性值不能修改,但是嵌套的引用类型不起作用 ???Object.freeze(obj); ???obj.a = 11 // 修改属性无效
  4. seal

    密封对象,不能添加和删除属性 ???Object.seal(obj); ???obj.d = 33; // 添加新属性无效
  5. 只读属性

    var obj = { ???a: 1, ???b: 2}Object.defineProperty(obj, "c", {value: 3, writable: false});obj.c = 4; // 无效console.log(obj.c);
  6. 不可枚举属性

    var obj = { ???a: 1, ???b: 2}Object.defineProperty(obj, "c", {value: 3, enumerable: false});for(let item in obj) { ???console.log(obj[item]); // 1 2}
  7. 不可重新配置属性

    var obj = { ???a: 1, ???b: 2}Object.defineProperty(obj, "c", {value: 3, enumerable: false, configurable: false});Object.defineProperty(obj, "c", {value: 3, enumerable: true}); // 报错
  8. 读取属性的配置信息

    var obj = { ???a: 1, ???b: 2}Object.defineProperty(obj, "c", {value: 3, enumerable: false, configurable: false});console.log(Object.getOwnPropertyDescriptor(obj, "c")); 输出信息 ???{ ????????value: 3, ???????writable: false, ???????enumerable: false, ???????configurable: false ????}
  9. get和set

    var obj = { ???a: 1, ???b: 2}Object.defineProperty(obj, "bb", { ???get: function() { ???????console.log("取值"); ???????return this.b; ???}, ???set: function(value) { ???????console.log("赋值", value); ???????this.b=value; ???}});obj.bb=1; ?// 赋值 1console.log(obj.bb);

js中的Object

原文地址:https://www.cnblogs.com/ye-hcj/p/10349215.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved