JavaScript之Object类型(引用类型)

Object类型

定义Object类型的方法


创建Object实例的方式可以说有三种,第一种是通过关键字new后跟构造函数Object来定义

var obj1 = new Object();

obj1.name = "Tom"; //为对象添加name属性并赋值Tom
obj1.age = 21; //为对象添加age属性并赋值21



第二种方式是通过对象字面量表示法创建对象,属性名与属性值是以值对的形式存在,即属性名与属性值之间用冒号":"隔开:

var obj2 = {
   name : "Tom",
    age : 21,
      5 : ture
};

表达式之间用逗号","隔开,最后一个表达式不用,属性名可以是字符串,属性名是数字时可以自动将其转换成字符串。



第三种方式,用字面量表示法,留空花括号,在下一行添加属性也可以:

var obj3 = {};

obj3.name = "Tom";
obj3.age = 21;

当然,第三种方法建议只为其添加默认的属性和方法时使用。




对象字面量方式多用于向函数传递大量可选参数的情况,可以封装多个可选参数。


function displayInfo(obj1) {
    var output = "";
    //判断传递进来的值是不是字符串,是的话输出字符串。
    if (typeof obj1.name == "string"){
        output += "name:" + obj1.name + "\n";
    }
    //判断传递进来的值是不是数字,是的话输出数字。
    if (typeof obj1.age == "number") {
        output += "age:" + obj1.age + "\n";

    }

    alert(output);
}

displayInfo({name : "Tom", age : 21});

displayInfo({name : "Tom"});

displayInfo({age : 21});

displayInfo({});

在这个例子中,函数displayInfo()接受一个名为obj1的参数,这个参数可能带有一个名name或age的属性,也可能两个都有或只有其中一个,在这个函数中,通过typeof来检测每个属性是否存在,然后基于相应的属性来输出相应的消息,我们调用四次这个函数,每次都使用一个对象字面量来指定不同的数据,每次输出结果,但每次函数都正常执行。



访问属性的方法



一般来说,访问对象属性时使用的都是点表示法对象变量.属性名除了用点表示法外,也可以用方括号表示法来访问对象的属性,在使用方括号语法时,应该将访问的属性以字符串的形式放于方括号中,即:

alert(obj1.name); //点表示法,弹出Tom

alert(obj1["name"]); //方括号法,以字符串形式放于方括号中,弹出Tom


方括号表示法有个优点,即:可以通过变量来访问属性。(将属性以字符串的形式赋值给一个变量)


var obj = {
    name : "Bob",
    age : 22
};

var a = "name"; //将属性以字符串的形式赋值给变量a

var b = "age";

alert(obj.name); //效果一样
alert(obj["name"]);
alert(obj[a]); //通过变量来访问属性

alert(obj.age); //效果一样
alert(obj["age"]);
alert(obj[b]); //通过变量来访问属性




除非必须使用通过变量来访问属性,否则还是建议使用点表示法来访问属性更好。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值