zoukankan      html  css  js  c++  java
  • JS_高程5.引用类型(1)Object类型

    引用类型

      在ECMASCript中,引用类型是一种数据结构,将数据和功能组织在一起,引用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法。(注意:尽管ECMAScript从技术上讲是一门面向对象的语言,但是它不具备传统面向对象语言所支持的类和接口等基本结构。)

    1.Obiect类型

    创建Object类型的两种方式:

    (1)使用new操作符后跟Objec构造函数

    1 var person=new Object();
    2     person.name="Linshuling";
    3     person.age=19;

    (2)使用对象字面量表示法(简写形式,简化创建包含大量属性的对象的过程。)

    1 var person={
    2         name:"Linshuling",
    3         age:19
    4     };
    5     alert(person.name);

    注意:

      在对象字面量中,使用逗号来分隔不同的属性,因此“Linshuling”后面是一个逗号,但是在age属性的值19后面不能加逗号,因为age是这个对象的最后一个属性。在最后一个属性后面添加逗号,会在IE7及更早的版本和Opera中导致错误。

    使用对象字面量语法时,属性名也可以使用字符串。

    eg:

    1 var person={
    2        "name" :"Linshuling",
    3        "age" :19,
    4        5:true
    5     };

    注意:这里的数值属性名会自动转换为字符串。

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

    eg:

    1 var person={};  //与new Object()相同
    2     person.name="Linshuling";
    3     person.age=19;
    4     alert(person.age);

    注意:

      在通过对象字面量定义对象时,实际上是不会调用Object构造函数(Firefox2及更早版本会调用;但是Firefox3之后就不会了)。实际上,开发人员更倾向对象字面语法,因为这种语法要求的代码量少,而且能够给人封装数据的感觉。

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

    eg:

     1  function displayInfo(args){
     2         var output="";
     3         if(typeof args.name=="string"){
     4             output+="Name:"+args.name+"
    ";
     5         }
     6         if(typeof args.age=="number"){
     7              output+="Age:"+args.age+"
    ";
     8         }
     9 
    10         alert(output);
    11     }
    12     displayInfo({
    13         name:"Linshuling",
    14         age:29
    15     });
    16 
    17     displayInfo({
    18         name:"lin"
    19     });

      这种传递参数得模式最适合需要向函数传入大量可选参数的情形。

    2.访问对象的方法

    (1)点表示法

    (2)方括号表示法

    eg:

    1 var person=new Object();
    2     person.name="Linshuling";
    3     person.age=19;
    4     alert(person.name);
    5     alert(person["age"]);

    注意:

    alert(person["age"]);属性名称age要加“”,不然会出现错误。



    方括号的优点:
    (1)可以通过变量来访问属性
    eg:
    1 var n="name";
    2     alert(person[n]);

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

    1 person["first name"]="Linshuling";

    由于first name 中包含一个空格,所以不能使用点表示法来访问它。

    注意:除非使用变量来访问属性,否则建议使用点表示法。

     
  • 相关阅读:
    类似Sina新浪滑动门代码
    纯CSS无JS实现灰色下拉导航菜单代码
    滑动门与选项卡互转的实现方法代码
    一款横向、竖向两个选项卡Tab一起联动的导航代码
    C#Brush的使用(转载)
    泛型学习笔记(转载)
    Application之间共享MasterPage(转载)
    ReportView学习笔记一(转载)
    BackGroundWorker学习
    加下划线的TextBox
  • 原文地址:https://www.cnblogs.com/LinSL/p/6187955.html
Copyright © 2011-2022 走看看