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': [email protected]

};

 

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操作符也不能检测到这个属性。
 

 

   

你可能感兴趣的:(JavaScript,工作,脚本)