JavaScript对象——枚举属性_读GET_写SET

一、枚举对象

对象的属性枚举:
            for in 遍历出来的是可枚举的
            for in 遍历不出来是不可枚举的
JavaScript对象——枚举属性_读GET_写SET_第1张图片JavaScript对象——枚举属性_读GET_写SET_第2张图片
name、age是能遍历出来的(是可枚举的),而toString constructor是遍历不出来的(即不可枚举的)。

#让name属性不可枚举
JavaScript对象——枚举属性_读GET_写SET_第3张图片
JavaScript对象——枚举属性_读GET_写SET_第4张图片
因此现在name属性是不可枚举的
在这里插入图片描述
JavaScript对象——枚举属性_读GET_写SET_第5张图片
但对象身上还有name属性,并没有删除这个属性,只是不能遍历出来了。

语法:
Object.defineProperty(对象,属性名称,{
enumerable:false
}) ===>让对象的属性不可枚举

二、对象的属性只读和只写(读GET_写SET)

	get ===》读
	set ===》写

#案例1 :
在这里插入图片描述在这里插入图片描述
现在将其改为10
在这里插入图片描述在这里插入图片描述
那么如果现在再去打印数组的length,那么仍然会是3.
JavaScript对象——枚举属性_读GET_写SET_第6张图片JavaScript对象——枚举属性_读GET_写SET_第7张图片
#案例2:
JavaScript对象——枚举属性_读GET_写SET_第8张图片JavaScript对象——枚举属性_读GET_写SET_第9张图片
如果修改属性,也不会更改为18
JavaScript对象——枚举属性_读GET_写SET_第10张图片JavaScript对象——枚举属性_读GET_写SET_第11张图片
原因在于:这里的语法是做的读
在这里插入图片描述
因此只能读,不能写。

#那么怎么改呢?====》set

JavaScript对象——枚举属性_读GET_写SET_第12张图片

打印对象obj
在这里插入图片描述
JavaScript对象——枚举属性_读GET_写SET_第13张图片
现在再打印一下:
在这里插入图片描述在这里插入图片描述

你可能感兴趣的:(javascript)