Javascript可写特性简介

说到js中的这些特性标签,总是觉得很奇怪。为什么我们说这个属性来自问题的问题,我们都知道窗口对象实际上是

浏览器窗口的一个实例,因为它是一个实例,那么实例应该具有属性和方法,如以下:



当我们使用函数时,我们将定义一些属性,比如名称、年龄等等,我们也可以对它们执行删除、设置和更新操作。



接下来的问题来了。现在,我的人物对象的名称可以动态修改,我也应该能够修改窗口下的未定义值,我想看一看。



因此,我可以想象,我没有成功地修改了未定义的值,那么为什么呢没有道理啊,它不是一种包装文章说的,但是我们要尊重结果,这说明JS的底层肯定会做什么,会导致这样的结果,实际上,JS默认的默认写有假标记,即未定义的属性是不可写的,请看下面的具体内容。



1:{可写}特性

说到属性是否是可写的,也许你可以想得到的C # / set访问器,或readonly关键字。现在你会感兴趣,我应该怎么做只读操作的属性。在JS,你可以只使用defineproperty方法。



从上面的例子中,你可以看到三个有趣的东西:

我用defineproperty方法变换person.name为只读字段。很明显,它是一种方法,它是怎样的。

{ { }模式,所以这是js的区别。毕竟,JS没有语法糖,所以定义特征只能通过底部打开的方式定义的,这是defineproperty。



我不仅看到了该方法中的可写,而且还可配置,这是什么实际上,这是基本配置。告诉js引擎是否删除或更新属性。在设置为false时,不能删除P名称,因为它将是无效操作。

U3000 U3000

在看到我的感觉,你应该明白为什么undifined不能删除和更新。这是一个怪物的标志,是不是很有趣

这是一个值得深思的问题:一是中端的Javascript引擎是怎么做的,其中C #是属性和属性,编译器将记录到的元数据,然后你可以使用反射在任何价值属性的访问,如Serializable序列化,它告诉serializableformat如何得到体现阅读课,哪些领域可以被序列化,什么不可以,你不需要使用非序列化标签。

复制代码代码如下所示:

{化}

公共课考试

{

{非序列化}

公用字符串名;

}





可以从IL的图表已记录在名字notserialized特点,我们知道,JS是没有反映,所以很自然的在defineproperty突破方法,但不幸的是,我们不能看到源方法的底部是真的喜欢,所以不知道名字的领域到底做什么可以动态导致它不能写,只有了解猜JS引擎可能发生的行为。