JavaScript支持对象的概念,我一直都理解的不太深,今天看了一下书,打算把这方面的知识记一下,方便以后查看与理解
1.创建对象
<!DOCTYPE HTML>
<html>
<head>
<title>Example</title>
</head>
<body>
<script type="text/javascript">
var myData = new Object();
myData.name = "Tao";
myData.weather = "sunny";
document.write("Hello " + myData.name + ".");
document.write("Today is " + myData.weather + ".");
</script>
</body>
</body>
</html>
通过调用 new Object()
的方式创建了一个对象,然后赋值给 myData
这个变量。在此之后,既可以像这样通过赋值的方式定义其属性。
myData.name = "ATao";
在这条语句之前,对象并没有一个名为name的属性。这条语句执行之后就有了这个属性,而且其值已被设置为ATao
。像这样用变量名后加一句点在加属性名的方式就能获取该属性的值:document.write("Hello " + myData.name + ".");
2.使用对象字面量
<!DOCTYPE HTML>
<html>
<head>
<title>Example</title>
</head>
<body>
<script type="text/javascript">
var myData = {
name:"ATao",
weather:"sunny"
}
document.write("Hello " + myData.name + ".");
document.write("Today is " + myData.weather + ".");
</script>
</body>
</body>
</html>
从代码清单中可以看出,属性的名称和值之间以冒号:
分离,而各个属性之间又以逗号,
分离。
3.为对象添加方法
<!DOCTYPE HTML>
<html>
<head>
<title>Example</title>
</head>
<body>
<script type="text/javascript">
var myData = {
name:"ATao",
weather:"sunny",
printMessages: function () {
document.write("Hello " + this.name + ". ");
document.write("Today is " + this.weather + ". ");
}
};
myData.printMessages();
</script>
</body>
</body>
</html>
此例将一个函数变成了一个名为printMessages
的方法。注意,在方法内部使用对象属性时要用到this
关键字。函数作为方法时,其所属对象会以关键字this
的形式作为一个参数被传给他。上述代码清单的输出结果如下所示:
Hello ATao. Today is sunny.
创建对象之后,可以用来做许多事情
4.使用对象
对象最显而易见的操作是读取或修改属性值。
<!DOCTYPE HTML>
<html>
<head>
<title>Example</title>
</head>
<body>
<script type="text/javascript">
var myData = {
name: "ATao",
weather: "sunny",
};
myData.name = "DH";
myData["weather"] = "raining";
document.write("Hello " + myData.name + ". ");
document.write("It is " + myData["weather"]);
</script>
</body>
</body>
</html>
第一种想必大家都很熟悉,前面的也使用的这种例子。其做法是像这样用.
将对象名和属性名连接在一起:
myData.name = "DH";
第二种则是类似数组索引,如下所示:
myData["weather"] = "raining";
在这种形式中,属性名作为一个字符串放在一对方括号之间。这种存取属性值的办法非常方便,应为可以用变量表述属性名。如下所示:
javascript
var myData = {
name:"ATao";
weather: "sunny";
};
var propName = "weather";
myData[ propName] = "raining";
在此基础上我们能使用枚举属性,下一次就来说说这个东西。