当前位置: 首页 > news >正文

一个公司做两个网站的好处西安seo包年服务

一个公司做两个网站的好处,西安seo包年服务,电子商务网站有哪些功能,四川政府网站建设管理办法属性描述符 假设有一个对象obj var obj {a:1 }观察这个对象,我们如何来描述属性a: 值为1可以重写可以遍历 我们可以通过Object.getOwnPropertyDescriptor得到它的属性描述符 var desc Object.getOwnPropertyDescriptor(obj, a); console.log(desc);我…

属性描述符

假设有一个对象obj

var obj = {a:1
}

观察这个对象,我们如何来描述属性a

  • 值为1
  • 可以重写
  • 可以遍历
  • 我们可以通过Object.getOwnPropertyDescriptor得到它的属性描述符
var desc = Object.getOwnPropertyDescriptor(obj, 'a');
console.log(desc);

我们会得到一个对象
观察这个对象中的内容

  • configurable : true:表示描述符本身能否修改
  • enumerable : true :是否可遍历
  • value : 1 :值
  • writable : true :是否可重写
    在这里插入图片描述
  • 设置属性描述符
Object.defineProperty(obj, 'a', {value:10,writable:false //表示不可重写
});
console.log(obj.a); // 10
  • :如果修改了configurable的值为false,后续再次修改属性描述符会报错。
Object.defineProperty(obj, 'a', {configurable:false
});
Object.defineProperty(obj, 'a', {value:20,
});
console.log(obj.a);

在这里插入图片描述

  • 但是,如果属性设置了不可重写,后续进行修改,虽然不会报错,但是不会修改成功
Object.defineProperty(obj, 'a', {value:10,writable:false //表示不可重写
});
console.log(obj.a); // 10
obj.a = 20;
console.log(obj.a); // 10

因此,如果属性不能重写,后续修改最好能进行报错,告诉用户哪句话出现了问题。

  • 为了解决上面的问题,Object.defineProperty中有两个函数
    • 读取器 getter
    • 设置器 setter

当读取属性a的值的时候会运行get函数,设置属性a的值的时候会 运行set函数

Object.defineProperty(obj, 'a', {get:function(){console.log("get函数");},set:function(val){console.log("set函数");}
});
obj.a = 20;  // set函数
console.log(obj.a);  // get函数

:这里需要注意一个问题—无限递归问题

  • 如果在get中读取属性,或者在set中设置属性的值,则会出现无限递归问题
Object.defineProperty(obj, 'a', {get:function(){return obj.a;},set:function(val){obj.a = val;}
});
obj.a = 20;
console.log(obj.a);

在这里插入图片描述

  • 使用样例
var internalValue = obj.a;
Object.defineProperty(obj, 'a', {get:function(){console.log("get函数");return internalValue;},set:function(val){console.log("set函数");internalValue = val;return internalValue;}
});
obj.a = 20; // set函数
console.log(obj.a); // get函数 20
  • 因此,假设该属性不能重写,可以在set函数中抛出一个报错信息,提示用户
Object.defineProperty(obj, 'a', {get:function(){console.log('get函数');},set:function(val){throw new Error(`报错信息:该属性不能赋值,你正在给这个属性赋值为${val}`);}
})
console.log(obj.a);
obj.a = 20;

在这里插入图片描述

当然,这里面也会出现问题需要考虑,具体出现的问题具体分析。

http://www.hengruixuexiao.com/news/34308.html

相关文章:

  • 美国建设工程标准下载网站关键词优化公司费用多少
  • 做平面的公司网站域名查询网
  • python做网站方便吗模板建站常规流程
  • 网站专题建设快速提升关键词排名软件
  • wordpress响应式音乐播放器上海企业seo
  • 上海青浦做网站公司网店推广营销方案
  • 二手车网站制作贵吗建立一个企业网站需要多少钱
  • wordpress安装文件夹广州seo优化排名公司
  • 最强国产系统发布山东seo推广
  • 电商网站分析报告怎么做网站开发的公司
  • 兴县网站建设免费域名注册二级域名
  • qq官方网站进入网站综合排名信息查询
  • 网站排名带照片怎么做哪个行业最需要推广
  • 免费咨询法律西安seo网站推广优化
  • 宁海网站建设网站优化公司推荐
  • 品牌建设网站规划seo快速排名软件
  • 郑州网站优化外包顾问neotv
  • 购物网站建设建站最新黑帽seo教程
  • 餐饮网站开发性能需求俄罗斯搜索引擎浏览器
  • dreamweaver8.0做网站2021年年度关键词排名
  • 电子商务网站的网络营销策略分析长沙网红奶茶
  • 西安的商城网站建设网站seo优化方法
  • 最近国际新闻热点seo排名软件
  • 中文域名是网站名称吗网络推广怎么推广
  • 服务器不支持做网站是什么意思关键词优化公司费用多少
  • 做网站效果图如何去做网络推广
  • 下载别人dede网站模版站长素材音效下载
  • 婚纱手机网站制作站长之家seo
  • 东莞网站建设平台推广方式有哪些?
  • 中国网络营销网站搜索引擎优化seo方案