JavaScript编程知识:对象Object概述
正文
JavaScript是面向对象编程(OOP)语言。如果编程语言为开发人员提供了四种基本功能,则可以将其称为面向对象
- 封装 - 在对象中存储相关信息(无论是数据还是方法)的功能。
- 聚合 - 将一个对象存储在另一个对象中的能力。(PS:存在一定争议,国内普遍认为面向对象的特征是除此之外的三个)
- 继承 - 类的某些属性和方法依赖于另一个类(或类的数量)的能力。
- 多态性 - 编写一种以各种不同方式工作的函数或方法的能力。
对象由属性组成。如果属性包含函数,则将其视为对象的方法,否则将该属性视为属性。
一、对象属性
对象属性可以是三种基本数据类型中的任何一种,也可以是任何抽象数据类型,例如另一个对象。对象属性通常是在对象方法内部使用的变量,但也可以是在整个页面中使用的全局可见变量。
向对象添加属性的语法是:
objectName.objectProperty = propertyValue;
以下代码使用文档(PS:document,内置的系统属性)对象的“title”属性获取文档标题。
var str = document.title;
二、对象方法
方法是让对象做某事或让某事做完的功能。函数和方法之间存在细微差别:函数是一个独立的语句单元,一个方法附加到一个对象,可以通过this关键字引用。
以下是一个简单示例,说明如何使用document对象的write()方法在文档上写入任何内容。
document.write("This is test");
用户定义的对象
所有用户定义的对象和内置对象都是名为Object的对象的子类(PS:可以理解成Object的孩子)。
三、new操作符
new运算符用于创建对象的实例。要创建对象,new运算符后跟构造函数方法。
在以下示例中,构造函数方法是Object(),Array()和Date()。这些构造函数是内置的JavaScript函数。
四、Object()构造函数
构造函数是一个创建和初始化对象的函数。JavaScript提供了一个名为Object()的特殊构造函数来构建对象。Object()构造函数的返回值分配给变量。该变量包含对新对象的引用。
上代码,demo1:
PS:以下代码,可以直接在自己的电脑上创建一个txt文件,把把内容,写到txt文件中。把文件的后缀名改为html就可以双击直接打开。为了更好的复制,截图下方,提供重复的文字版~
<html>
<head>
<title>User-defined objects</title>
<script type = "text/javascript">
var book = new Object(); // Create the object
book.subject = "Perl"; // Assign properties to the object
book.author = "Mohtashim";
</script>
</head>
<body>
<script type = "text/javascript">
document.write("Book name is : " + book.subject + "<br>");
document.write("Book author is : " + book.author + "<br>");
</script>
</body>
</html>
PS:引用怎么理解呢?可能理解为,它只是一个表示,通过这个表示可以找到真正的实例对象。
输出结果:
Book name is : Perl
Book author is : Mohtashim
demo2:
此示例演示如何使用用户定义的函数创建对象。下面这个关键字被用来指已传递给函数的对象。
<html>
<head>
<title>User-defined objects</title>
<script type = "text/javascript">
// Define a function which will work as a method
function addPrice(amount) {
this.price = amount;
}
function book(title, author) {
this.title = title;
this.author = author;
this.addPrice = addPrice; // Assign that method as property.
}
</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 + "<br>");
</script>
</body>
</html>
输出:
Book title is : Perl
Book author is : Mohtashim
Book price is : 100