第八章 8.1 对象和属性(Objects and Properties)

object 是一些值的集合。他允许我们通过一个关联的名称来取出值。简而言之,就是一些 key / value 的组合。其中的 value 可以是原始 (primitive) 数据类型(number, string), 也可以是 object。

如何创建 object

object 可以通过 new 操作符来创建。后面跟一个构造函数名(constructor),这个 constructor 用来进行初始化。例如:

None.gif var  o  =   new  Object();  //  创建一个空对象(没有任何属性的)。
None.gif

也可以利用内建的一些 constructor 函数来创建一些对象。比如:

None.gif var  now  =   new  Date(  );                         //  The current date and time
None.gif

None.gif
var  new_years_eve  =   new  Date( 2000 11 31 );   //  Represents December 31, 2000 

还有一种创建对象的方式叫做“object 字面值”(object literals),其语法如下:

None.gif var  circle  =  { x: 0 , y: 0 , radius: 2  }
None.gif
None.gif
var  homer  =  {
None.gif              name: 
" Homer Simpson " ,
None.gif              age: 
34 ,
None.gif              married: 
true ,
None.gif              occupation: 
" plant operator " ,
None.gif              email: 
" homer@simpsons.com "
None.gif}; 

这种语法是在 ECMAScript v3 中定义的。JavaScript 1.2 以及更高版本都实现了。

存取 Object 里的值,使用 “.” 操作符即可。一些例子:

None.gif //  Create an object. Store a reference to it in a variable.
None.gif
var  book  =   new  Object(  );
None.gif
None.gif
//  Set a property in the object.
None.gif
book.title  =   " JavaScript: The Definitive Guide "
None.gif
None.gif
//  Set some more properties. Note the nested objects.
None.gif
book.chapter1  =   new  Object(  );
None.gifbook.chapter1.title 
=   " Introduction to JavaScript " ;
None.gifbook.chapter1.pages 
=   19 ;
None.gifbook.chapter2 
=  { title:  " Lexical Structure " , pages:  6  };
None.gif
None.gif
//  Read some property values from the object.
None.gif
alert( " Outline:  "   +  book.title  +   " \n\t "   +
None.gif      
" Chapter 1  "   +  book.chapter1.title  +   " \n\t "   +
None.gif      
" Chapter 2  "   +  book.chapter2.title); 

枚举对象的属性

用 for...in 语法,例子如下:

None.gif function  DisplayPropertyNames(obj) {
None.gif    
var  names  =   "" ;
None.gif    
for ( var  name  in  obj) names  +=  name  +   " \n " ;
None.gif    alert(names);
None.gif

这个语法仅仅列举用户定义的那些属性,而不列举预定义的那些。列举属性是不按任何固定次序的。

undifined

如果要取出一个不存在的属性,则会得到 undefined.
要删除一个已有的属性,用 delete 操作符。语法如下:

None.gif delete  book.chapter2;

这个操作不是仅仅把该属性设成 undefined. 而是从对象中彻底除去。用 for...in 循环可以测试出这一点。for...in 语法会列出值为 undefined 的那些属性。

转载于:https://www.cnblogs.com/RChen/articles/143373.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值