美文网首页
JavaScript对象

JavaScript对象

作者: 勃王 | 来源:发表于2017-05-20 20:51 被阅读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命令只能删除对象本身的属性,无法删除继承的属性**)

    相关文章

      网友评论

          本文标题:JavaScript对象

          本文链接:https://www.haomeiwen.com/subject/jqwpxxtx.html