js 如何将某个属性设置成隐藏的

JavaScript042

js 如何将某个属性设置成隐藏的,第1张

是不可遍历吗

Object.defineProperty(对象,"属性名",{

enumerable:false,

value:属性值

})

//批量设置

Object.defineProperties(对象,{

属性1:{

enumerable:false,

value:属性值

},

属性2:{

enumerable:false,

value:属性值

}

})

不考虑[]用作数组或集合下标使用的情况,单针对某个对象,这两种写法本质是一样的。但是第2种写法可以使用变量作为属性名,在实际使用过程中非常灵活,比如可以写出很通用的代码,而不用考虑具体对象的结构。

这是由JavaScript的语法导致的,JavaScript并不能很好的解析css那样的书写格式。

首先我们先回答另一个问题,JavaScript和css中属性名称有哪些差异?主要有两个:

1、 JavaScript使用驼峰命名法,而css不是。

2、 JavaScript的属性值用字符串表示,而css不是。

而导致这两个原因的就是JavaScript的语法。

1、 在css中,属性名中的单词之间是用横杠隔开,如font-weight, background-color。但在JavaScript中,横杠可能被认为是减号,所以采用驼峰命名法,单词之间不用横杠,如font-weight在JavaScript中应该写成fontWeight而background-color写成backgroundColor。

2、 在JavaScript中,属性值都写在双引号中,即要用字符串来给JavaScript相关属性赋值,同样当属性值有单位时,我们需要将单位也写在字符串中。示例:

myElement.style.fontWeight = “bold”

myElement.style.width = “230px”

而在css中直接写成:

width: 230px

font-weight:bold

其中属性值230px在JavaScript中可能会被认为是一个不合法的变量,因为它以数字开头,而bold也会被认为是一个变量,而不是表示字体的一种格式。所以JavaScript的属性值用字符串表示。

另外,秒秒学在《使用JavaScript美化界面》一章中详细说明了JavaScript是如何动态的改变样式的,你可以去看下。