今天在javaScript 秘密花园中由"三生石上"翻译的一篇文章,里面讲对象的那部分。里面阐述的对象中属性可以有两种方式来表示。分别是 " . "与[ ]。如下面例子所示
//var student = {name:"lala",age:"10"};
-
student.name 就可以获取属性name中的值了,即是lala
-
student['name']同样地可以获取到name中值 , 也是 lala.
那么,这两种表示方式是有何不同呢?
在此篇文章中,讲述的这两种方式的不同在于第二种方式可以动态地修改对象中的属性。
也就是说,在一下两种情况下,第一种方式会报错,但是第二种不会报错,并会成功的执行的。
-
第一情况:使用变量获取属性中的值
// var getName = 'name'
// student[getName]是不会报错的,并且得到值为lala。
//然而 student.getName 是会报错的。
-
第二种情况:增加对象中的属性
在这种情况下,我们验证方法可以是尝试获取对象student并未初始化的属性'sex',
//这时候,student['sex']是不会报错的,并且可以通过student['sex'] ='女'写入对象中。
//然而,使用student.sex是一定会报错的。
以上的所有操作,都经自己验证过的了。如果有什么问题,可以提出来互相讨论一下。总结好改表示对象的属性与动态添加后,接下来我们说说关于对象中的删除吧?
如何删除对象的属性,将属性设置为undefined或null 与直接delete有和区别?
只有执行 delete [属性名] 后的属性才是真正的删除,对于前两者仅仅只是移除了属性与值的关联。