JavaScript对象概述


JavaScript是一种面向对象的编程(OOP)语言。如果编程语言为开发人员提供了四个基本功能,则可以将其称为面向对象:

  • 封装:将相关信息,无论是数据还是方法,一起存储在一个对象中的能力。

  • 聚合:在另一个对象中存储一个对象的能力。

  • 继承:一个类能够依靠另一个类(或若干个类)来获得它的一些属性和方法。

  • 多态性:编写一个函数或方法以各种不同方式工作的能力。

对象是由属性组成的。如果一个属性包含一个函数,它被认为是该对象的一个方法,否则该属性被认为是一个属性。

对象属性


对象属性可以是三种原始数据类型中的任何一种,也可以是任何一种抽象数据类型,例如另一个对象。对象属性通常是在对象的方法中内部使用的变量,但也可以是全局可见的变量,在整个页面中使用。

向对象添加属性的语法为:

objectName.objectProperty = propertyValue;

例如:以下代码使用"title"的属性document对象。

var str = document.title;

对象方法


方法是让对象做某事或让某事对它做的函数。函数和方法之间有一个小小的区别--函数是一个独立的语句单元,而方法是附加在一个对象上的,可以通过this关键字来引用。

从显示对象的内容到屏幕,再到对一组局部属性和参数执行复杂的数学运算,方法对所有事情都很有用。

例如:以下是一个简单的示例,说明如何使用write()用来在文档上写入任何内容的文档对象的方法。

document.write("This is test");

自定义对象


所有用户定义的对象和内置对象都是称为的对象的后代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">
            var book = new Object();   //创建对象
            book.subject = "Perl";     //为对象分配属性
            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>
Book name is : Perl 
Book author is : Mohtashim

例子2

本示例演示了如何使用用户定义的函数创建对象。这里this关键字用于引用已传递给函数的对象。

<html>
    <head>
    <title>User-defined objects</title>
        <script type = "text/javascript">
            function book(title, author) {
                this.title = title;
                this.author  = author;
            }
        </script>
    </head>
   
    <body>
        <script type = "text/javascript">
            var myBook = new book("Perl", "Mohtashim");
            document.write("Book title is : " + myBook.title + "<br>");
            document.write("Book author is : " + myBook.author + "<br>");
        </script>
    </body>
</html>
Book title is : Perl 
Book author is : Mohtashim

定义对象的方法


前面的示例演示了构造函数如何创建对象和分配属性。但是我们需要通过为对象分配方法来完成其定义。

请尝试以下示例;它显示了如何与对象一起添加功能。

<html>
   
    <head>
    <title>User-defined objects</title>
        <script type = "text/javascript">
            //定义一个将用作方法的函数
            function addPrice(amount) {
                this.price = amount;
            }
         
            function book(title, author) {
                this.title = title;
                this.author  = author;
                this.addPrice = addPrice;  //将该方法分配为属性。
            }
        </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

“ with”关键字


‘with’关键字用作引用对象的属性或方法的一种简写形式。

指定为参数的对象with成为后续块持续时间内的默认对象。可以使用该对象的属性和方法而无需命名该对象。

语法

with object的语法如下:

with (object) {
    properties used without the object name and dot
}

请尝试以下示例。

<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;  //将该方法分配为属性。
            }
        </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

JavaScript本机对象


JavaScript具有多个内置对象或本机对象。这些对象可在程序中的任何位置访问,并且在任何操作系统中运行的任何浏览器中都将以相同的方式工作。

以下是所有重要的JavaScript本机对象的列表:

  • JavaScript数字对象

  • JavaScript布尔对象

  • JavaScript字符串对象

  • JavaScript数组对象

  • JavaScript日期对象

  • JavaScript数学对象

  • JavaScript RegExp对象