zoukankan      html  css  js  c++  java
  • 引用类型-----Object

    本文章转载至:https://segmentfault.com/a/1190000003984584

    关于引用类型的概念:

    • 引用类型:引用类型的值(对象)是引用类型的一个实例;

    • 对象:是某个特定引用类型的实例;

    • 新对象:用new 操作符后跟一个构造函数来创建的;如代码:var person = new Object();这行代码创建了Object 引用类型的一个新实例,然后把该实例保存在了变量person 中。使用的构造函数Object()

    创建Object 类型实例的方法

    1. 使用new 操作符后跟Object 构造函数;

    2. 使用对象自变量表示法

    对于第一种,Object 实例的创建方式如下:

    var child = new Object();
    child.name = "Oliver";
    child.age = 18;
    console.log(child.name); //"Oliver"

    对于第二种,Object 实例的创建方式如下:

    var child = {
    name: "Oliver",
    age: 18
    } console.log(child.age
    + " " + child.name); //"18 Oliver"

    上面这个例子中,在age:18 之后不能添加逗号,因为age 是这个对象的最后一个属性。(在最后一个属性后面添加逗号,会在IE7 及更早版本和Opera 中导致错误。)

    另外,在自变量表示法创建实例的中,属性名也可以使用字符串,如:

    var person = {
        "name" : "Nicholas",
        "age" : 29,
        5 : "fdd"
    }
    console.log(person.name); //"Nicholas"
    console.log(person["5"]); //"fdd"

    注意!这里如果要访问person 里面的属性名为5 的属性的值,则需要使用方括号语法如:person[5],最好写成person['5']后面会介绍。

    另外,这里的5 会被自动转换成字符串"5"。

    在使用字面两语法时,如果留空其花括号,则可以定义只包含默认属性和方法的对象,如:

    var person = {};
    person.name = "Oliver";
    person.age = 18;
    person[5] = "fdd";

    这里的var person = {}new Object()相同。

    对象字面两也是向函数传递大量可选参数的首选方式,如:

    function display(obj){
        var output = "";
        if (typeof obj["name"] == "string"){
            output += "Name: " + obj["name"] + "<br/>";
        }
        if (typeof obj.age == "number"){
            output += "Age: " + obj.age + "<br/>";
        }
        document.write(output);
    }
    
    display({
        name:"Oliver",
        age:18
    })

    一般来说方括号语法是在必须使用变量来访问属性的时候才使用。如果这里一定要用方括号语法,那就必须写成这样的形式person["name"]person.name相同。后面会详述。

    访问对象的属性

    一般来说主要有两种方法:

    1. 点表示法;

    2. 方括号语法;

    访问对象属性时一般都是使用点表示法。当然也可以使用方括号表示法,如:

    person.name;
    person["name"];

    方括号语法的主要优点是可以通过变量来访问属性,如:

    var person = {
        name:"Oliver"
    }
    var propertyName = "name";
    console.log(person[propertyName])

    在对象里面,name属性可以写成字符串形式"name",如果用方括号语法,一定要注意写成person["name"]

    如果属性名中包含会导致语法错误的字符,或者属性名使用的是关键字或保留字,也可以使用方括号表示法。如:

    person["first name"] = "Oliver";

    因为如果写成person.first name 会报错。
    一定要注意的是,除非必须使用变量来访问属性,否则建议使用点表示法。

     

  • 相关阅读:
    项目人力资源管理
    以太网交换机
    邮件协议简单学习
    信息系统开发方法
    项目成本管理
    oracle学习笔记002---oracle的体系结构
    007 项目进度管理
    乘法逆元
    RMQ __ST
    中国剩余定理(CRT)
  • 原文地址:https://www.cnblogs.com/tangwanzun/p/5993733.html
Copyright © 2011-2022 走看看