JavaScript对象

2017-05-20  本文已影响0人  勃王

生成方法(3种)

  1. 最常用的一种:
    var a = {p:'Hello World'};
    2.new命令
    var a = new Object{p:'Hello World'};
    3.Object.create方法
    var a = object.create(Object.prototype); (这种写法一般用在需要对象继承的场合)

对象的引用

如果不同的变量名指向同一个对象,那么它们都是这个对象的引用,也就是说指向同一个内存地址。修改其中一个变量,会影响到其他所有变量.但是,这种引用只局限于对象,对于原始类型的数据则是传值引用,也就是说,都是值的拷贝。

表达式还是语句?

对象采用大括号表示,这导致了一个问题:如果行首是一个大括号,它到底是表达式还是语句?

为了避免这种歧义,JavaScript规定,如果行首是大括号,一律解释为语句(即代码块)。如果要解释为表达式(即对象),必须在大括号前加上圆括号。、

 eval('({foo: 123})') // {foo: 123}```
这种差异在eval语句中反映得最明显。

#读取属性
- 读取对象的属性,有两种方法,一种是使用点运算符,另一种是使用方括号运算符。
- 在使用点运算符的时候,传入的数据如果是数字的话会被当成小数,所以在读取数字的时候使用方括号运算符,在使用方括号运算符的时候,传入的数据要加上引号,不然会被当成变量处理。但是数字可以不用加引号,因为数字会自动转化成字符串。(PS:所以对象里面的属性名称是数字的属性,其实都是字符串存贮。)
# 检查变量是否声明
方法如下

if('a' in window){
//a声明过
}else{
//a未声明
}

#查看所有属性
Object.keys()方法可以查看对象的所有属性名。
#delete命令
用于删除对象的属性,但是原本没有的属性,使用delete命令删除后也会返回true,只有当delete命令操作不能被删除的属性或者全局属性是才会返回false(**另外,需要注意的是,delete命令只能删除对象本身的属性,无法删除继承的属性**)
上一篇下一篇

猜你喜欢

热点阅读