JavaScript – 对象概述
JavaScript 是一种面向对象的编程语言。如果一种编程语言能向开发者提供以下四种基本能力,则可以称之为面向对象的语言 −
- 封装 − 能力将相关信息(数据或方法)一起存储在一个对象中。
-
聚合 − 具有将一个对象存储在另一个对象中的能力。
-
继承 − 一个类依赖于另一个类(或多个类)的属性和方法的能力。
-
多态 − 能力编写一个函数或方法,使其以多种不同的方式工作。
对象由属性组成。如果属性包含函数,则被认为是对象的方法,否则该属性被认为是一个属性。
对象属性
对象属性可以是三种原始数据类型之一,也可以是抽象数据类型之一,比如另一个对象。对象属性通常是在对象的方法内部使用的变量,但也可以是在整个页面中可见的全局变量。
向对象添加属性的语法是 −
objectName.objectProperty = propertyValue;
例如 − 下面的代码获取了文档标题,使用了 “title” 属性的 document 对象。
var str = document.title;
对象方法
方法是让对象做某些事情或对其进行操作的函数。函数和方法之间有细微区别——函数是独立的语句单元,而方法则附加到对象上,并可由 this 关键字引用。
方法可用于从对象到屏幕显示对象内容,再到对一组本地属性和参数执行复杂的数学运算等方方面面。
例如 − 下面是一个简单的例子,展示如何使用文档对象的 write() 方法编写文档上的任何内容。
document.write("这是测试");
用户定义对象
所有用户定义的对象和内置对象都是一个叫做 Object 的对象的后代。
new 运算符
使用 new 运算符创建对象的实例。要创建对象,则在构造函数方法后面跟随使用 new 运算符。
在下面的示例中,构造函数方法为 Object()、Array() 和 Date()。这些构造函数是内置的 JavaScript 函数。
var employee = new Object();
var books = new Array("C++", "Perl", "Java");
var day = new Date("August 15, 1947");
Object() 构造函数
构造函数是创建并初始化对象的函数。JavaScript 提供了一个叫做 Object() 的特殊构造函数来构建对象。返回值为 Object() 构造函数的变量被赋值给变量。
变量包含一个新对象的引用。分配给对象的属性不是变量,也不使用 var 关键字定义。
示例 1
请尝试以下示例;它演示了如何创建一个对象。
<html>
<head>
<title>User-defined objects</title>
<script type = "text/javascript">
function addPrice(amount) {
with(this){
price = amount;
}
}
function book(title, author) {
this.title = title;
this.author = author;
this.price = 0;
this.addPrice = addPrice; // Add function to the object
}
</script>
</head>
<body>
<script type = "text/javascript">
var myBook = new book("Perl", "Mohtashim");
myBook.addPrice(100);
document.write("Book title is : " + myBook.title + "<br>");
document.write("Book author is : " + myBook.author + "<br>");
document.write("Book price is : " + myBook.price);
</script>
</body>
</html>
输出
Book title is : Perl
Book author is : Mohtashim
Book price is : 100
<html>
<head>
<title>自定义对象</title>
<script type = "text/javascript">
// 定义一个作为方法的函数
function addPrice(amount) {
with(this) {
price = amount;
}
}
function book(title, author) {
this.title = title;
this.author = author;
this.price = 0;
this.addPrice = addPrice; // 将该方法分配为属性。
}
</script>
</head>
<body>
<script type = "text/javascript">
var myBook = new book("Perl", "Mohtashim");
myBook.addPrice(100);
document.write("书名是 : " + myBook.title + "<br>");
document.write("作者是 : " + myBook.author + "<br>");
document.write("价格是 : " + myBook.price + "<br>");
</script>
</body>
</html>
输出结果
书名是 : Perl
作者是 : Mohtashim
价格是 : 100
JavaScript内置对象
JavaScript有几个内置或本地对象。这些对象可以在程序的任何地方访问,并且在任何操作系统中运行的任何浏览器中都可以以同样的方式工作。