Object类型——ECMAScript

简介

(1)在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起。引用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法

(2)大多数引用类型值都是Object类型的实例

(3)Object对于在应用程序中存储和传输数据而言,是非常理想的选择

创建方法

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

例如:

var person = new Object(); 
person.name = "Nicholas"; 
person.age = 29; 

使用对象字面量表示法

对象字面量是对象定义的一种简写形式,目的在于简化创建 包含大量属性的对象的过程

表示方式

(1)默认方式

var person = { 
    name : "Nicholas", 
    age : 29 };  

(2)属性名使用字符串

var person = { 
    "name" : "Nicholas", 
    "age" : 29, 
    5 : true 
};  

(3)留空其花括号,定义只包含默认属性和方法的对象

var person = {};         //与 new Object()相同 
person.name = "Nicholas"; person.age = 29; 

优点

(1)语法要求的代码量少,而且能够给人封装数据的感觉

(2)方便向函数传递大量可选参数

例如:

  function displayInfo(args) {
            var output = "";
            //typeof 操作符来检测 每个属性是否存在
            if (typeof args.name == "string") {
                output += "Name: " + args.name + "\n";
            }
            if (typeof args.age == "number") {
                output += "Age: " + args.age + "\n";
            }
            //基于相应的属性来构建一条要显示的消息
            alert(output);
        }
        //使用一个对象字面量来指定不同的数据
        displayInfo({
            name: "Nicholas",
            age: 29
        });
        //两次调用传递的参数虽然不同,但函数都能正常执行
        displayInfo({
            name: "Greg"
        });

访问属性方式

点表示法

alert(person.name);         //"Nicholas" 

方括号语法

alert(person["name"]);       //"Nicholas"

区别

(1)方括号语法的主要优点是可以通过变量来访问属性

var propertyName = "name"; 
alert(person[propertyName]);  //"Nicholas" 

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

//由于"first name"中包含一个空格,所以不能使用点表示法来访问它。然而,属性名中是可以包含非字母非数字的,这时候就可以使用方括号表示法来访问它们
person["first name"] = "Nicholas";

(3)除非必须使用变量来访问属性,一般使用点表示法。

扩展

关于JavaScript对象,可以参考我的另外两篇博客:

面向对象的程序设计——理解对象
http://blog.csdn.net/iamcgt/article/details/72178586

面向对象的程序设计——创建对象
http://blog.csdn.net/iamcgt/article/details/72190538

参考

《JavaScript高级程序设计》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值