javascript学习笔记——对象与arrays

1.创建对象

创建对象最简单的方法是在js代码中包含进字面意义上的对象(object literal)。一个object literal是一个用逗号隔开的name/value对。用大括号包含。属性名可以为js标识符( identifier)或字符串,属性值可以为常量或任意js表达式。例如:

var empty = {}; // An object with no properties

var point = {x:0, y:0};

var circle = {x:point.x, y:point.y+1, radius:2};

var homer = {

        "name": "Homer Simpson",

         "age": 34,

           "married": true,

          "occupation": "plant operator",

          'email': homer@example.com

};

 

object literal 是一个每次evaluate时创建并初始化一个新的与众不同的对象的表达式。That is, a single object literal can create many new objects if it appears within the body of a loop in a function that is called repeatedly.

new操作符可以创建特定类型的对象。

2.对象属性

对象属性如同变量一样工作。如

<code>

//创建对象,将其reference存在一个变量中

var book = {};

//设置对象的一个属性

book.title = "JavaScript: The Definitive Guide"

// 设置更多的属性,注意嵌套对象

book.chapter1 = new Object();
book.chapter1.title = "Introduction to JavaScript";
book.chapter1.pages = 11;
book.chapter2 = { title: "Lexical Structure", pages: 6 };

// 读取对象的值.
alert("Outline: " + book.title + "\n\t" +  "Chapter 1 " + book.chapter1.title + "\n\t" +  "Chapter 2 " + book.chapter2.title);

</code>

注意如上所示:可以为对象创建一个新的属性只需要简单地给它赋一个值。甚至都不需要使用var关键字。且这个属性的值可以任意改变。

2.1 列举属性(Enumerating Properties)

for/in 循环提供了在对象属性中循环的方法。在调试脚本或者预先不知道所用对象的属性名时很有用。下面的例子是列出一个对象的所有属性名:

<code>

function DisplayPropertyNames(obj) {

        var names = " ";

        for(var name in obj) names += name + "\n";

        alert(names);

}

</code>

注意for/in 循环不以特定属性枚举属性,尽管枚举所有用户自定义属性但不枚举特定的预定义属性和方法。

2.2 检查属性是否存在

用操作符in

<code>

if("x" in o) o.x = 1;

in不常用,因为如果所求的属性不存在,会返回undefined值,故上式通常写为:

if( o.x!== undefined) o.x = 1;

2.3 删除属性
delete book.chaper2;
</code>
并不只是将属性设为undefined,而是将此属性从对象中移除,此操作之后,for/in 将不再枚举这个属性,in操作符也不能检测到这个属性。
 

 

   

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值