说起js中的那些特性标记,总觉得有些怪怪的,那为什么要说到这个attribute,起源于对一个问题的疑问,我们都知道window对象其实就是

浏览器窗口的一个实例,既然是一个实例,那这个实例就应该有“属性”和“方法“,比如下面这样:
我们平时都在使用function的时候,都会定义一些属性,比如name,age等等,并且还可以对他们进行delete,set和update操作。
那么下面问题来了,既然我的person对象的name都可以动态修改,按照这个道理的话,我也应该可以修改window下的undefined值,然后就非常感兴趣的想看一看。
结果还是可想而知,我并没有成功修改undefined的值,那为什么会这样呢?没有道理呀,它又不是上一篇所说的包装类型,但我们不得不尊重结果,这就说明js底层肯定是做了些什么才会导致这样的结果,其实在底层js默认用了Writable=false标记才让undefined属性不可写入,下面具体看看。
一:[Writable]特性
说到属性是否可写,也许你会联想到C#中的get/set访问器,又或者是readonly关键字,下面你肯定会感兴趣我应该怎么做到属性的只读操作。在js中你只要使用defineProperty方法就可以了。
从上面的例子中可以看到三点好玩的东西:
<1>: 我使用了defineProperty方法将person.name变成了只读字段,那有人要说了,这明明是方法,怎么会是特性,特性在我的思维里面就是
【xxx】模式,所以这就是js的不同之处,毕竟js没有语法糖,所以定义特性只能是通过底层公开的方法来定义,也就是defineProperty。
<2>: 我在方法中不仅看到了writable,还有一个configurable,那这个是干什么的?其实这个就是基础配置,告诉js引擎是否可以delete,update属性,当我把configurable设为false的时候,你就不可以delete p.Name了,因为这会是一个无效操作。
看完了这些我觉的你应该明白了,为什么undifined不能delete和update了。都是标记做的怪,是不是觉得很有意思?
<3>: 下一个值得思考的问题就是js引擎到底是怎么做到的,在C#里面也是有Atrribute,并且这个Atrribute被编译器编译后会记录到元数据中,然后你就可以放心大胆的使用反射来获取你的Atrribute中的任何值,比如说Serializable序列化类,它就是告诉SerializableFormat怎么去反射读取类,哪些字段可以序列化,哪些不可以,不可以的你需要用NonSerialized标记。
复制代码 代码如下:
[Serializable]
public class Test
{
[NonSerialized]
public string Name;
}
从图中可以看到IL中已经记录了Name为notserialized特性了,我们知道js中并没有反射,所以突破口自然就在defineProperty方法里面,但是比较遗憾,我们看不到这个方法底层的源码到底是怎么样的,所以就不知道它对Name这个字段到底做了什么才可以动态的导致它不可写,只能根据理解去猜测js引擎可能会发生的行为。
相关推荐:
优化分析:提升企业效益的关键策略,山东大网站建设
seo要公司什么资源,做seo需要用到什么软件 ,ai明星换了
AI免费生成文章的软件:轻松创作的秘密武器
seo深度优化插件是什么,深度优化手机软件 ,ai的缩写
SEO阶段解析:从入门到精通,助你站稳搜索引擎的前沿,网站建设特定开发
高效创作之路:文章AI生成器的力量
SEO手段:提升网站流量的制胜法宝,idc网站怎么推广
seo适用于什么领域,seo适用于什么领域中 ,ai智能翻译写作机器人v1.0
SEO重要性与企业互联网发展的必由之路,互联网营销推广平台设计
ChatGPT连了外网也登不了?如何解决这一问题,重新畅享AI助力!,ai少女大瓜
ChatGPT为什么页面下拉不了?问题解析与解决方案,ai对准
怎么让AI写文章,轻松实现内容创作的智能化
SEO挣钱之道:如何通过SEO实现网络盈利,宁晋网站建设商家
SEO优化关键技巧:提升网站排名的实战攻略,科大讯飞ai论文写作软件
SEO项目:如何通过精确优化提升企业网站排名与转化率,武汉做网站优化的公司
SEO新站优化指南:快速提升排名的必备技巧,海珠网站推广哪家有名
SEO词的魔力:如何通过关键词优化打破流量瓶颈,免费网站建设高端
什么是seo运营,什么是seo营销 ,ai绘画沙地
AI缩写文档:革新文档管理与自动化的未来,ai聊天中文
AI的两个主要发展阶段:从起步到突破,如何重塑未来,wps ai写作去哪里
ChatGPTWindows版本下载:让AI助力您的工作和生活,ai yamama
seo软文有什么作用,seo文案是什么 ,斐乐Ai测评问题
好用的AI写作软件,让创作更高效
SEO汇报:如何通过数据分析提升网站排名,助力企业业绩增长,免费推广网站大全百度经验
ChatGPT的VPN梯子:畅享全球互联网自由,打破地域限制,一直搜Ai
AI一键生成文章在线:提升创作效率,改变写作方式
ChatGPT5.0为什么一直没出来?背后的技术与战略,元宵节ai趣赏月
SEO自从上线后的演变与未来发展趋势,拼多多增加关键词排名
二SEO是什么,h二seo三是什么 ,ai手术机
ChatGPT:如果您正在使用VPN,这些技巧您一定要知道!,AI换脸*H
SEO立刻:快速提升网站排名,带你走在搜索引擎前沿,网站建设怎么推广好做
ChatGPT免登录:轻松畅聊,无需注册,快速体验AI智能助手,眼泪ai
SEO教研:数字营销新趋势,提升网站流量与转化率的关键,齐鲁证券网站建设
AI网页版本:开启智能时代的新篇章,拼音标调ai
好用的AI写作软件免费推荐:创作新境界!
二创AI:打破创意壁垒,引领未来内容创作新潮流,背影教案网站建设游戏
SEO快排还有效果吗揭秘快速排名的真相与未来趋势,ai人像波普
一秒采集:提升效率、创造价值的秘密武器,苏州网站整站优化
AI网站开发与代码创新:引领未来数字化变革的关键,ai ay规则
AI缩短短文-提升创作效率,写作新体验,光速写作业ai写作app
《收录情况:数字时代的网络信息检索与价值体现》,山东全域营销推广软件客服电话
SEO努力:提升网站排名的关键策略,网站建设微企动力
seo软文用什么论坛,seo软文是什么意思 ,爱字幕的AI变脸不见了
SEM+SEO:助力企业数字化营销的双剑合璧之道,ai头像丑
文字生成AI:开启创意写作的新纪元
ChatGPT4账号共享-让AI助力你的学习与工作,轻松提升效率,ai巨无霸
怎么让AI润色文章,让写作更轻松?
AI一键生成原创文章,让创作更高效更轻松!
seo管理系统是什么,seo网站管理 ,过度圆ai
SEO到底怎么做?揭秘从零到精通的完整SEO优化攻略,鸟瞰ai