JavaScript - 对象概述

JavaScript是一种面向对象编程(OOP)语言。编程语言可以称为面向对象,如果它为开发人员提供四种基本功能并且减去;

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

  • 聚合 :

  • 继承 : 一个类依赖另一个类(或类的数量)来处理它的一些属性和方法的能力。

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

对象由属性组成。如果属性包含函数,则将其视为对象的方法,否则该属性将被视为属性。

对象属性

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

向对象添加属性的语法是&减去;

 
 objectName.objectProperty = propertyValue;


例如 : 以下代码使用文档对象的"title"属性获取文档标题。

 
 var str = document.title;


对象方法

方法是让对象做某事或让某事做完的功能。函数和方法之间存在细微差别 - 函数是一个独立的语句单元,一个方法附加到一个对象,可以通过 this 关键字引用。

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

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

 
 document.write("这是测试");


用户定义的对象

所有用户定义的对象和内置对象都是名为

新算子

运算符用于创建实例一个东西。要创建一个对象, new 运算符后面跟着构造函数方法。

在下面的例子中,构造函数方法是Object(),Array(),和日期()。这些构造函数是内置的JavaScript函数。

 
 var employee = new Object(); 
 var books = new Array("C ++","Perl","Java"); 
 var day = new Date("1947-8-15");


Object()构造函数

构造函数是一个创建和初始化对象的函数。 JavaScript提供了一个名为 Object()的特殊构造函数来构建对象。 Object()构造函数的返回值被赋值给变量。

该变量包含对新对象的引用。分配给对象的属性不是变量,也不是使用 var 关键字定义的。

示例1

尝试以下示例;它演示了如何创建对象。

在线演示

<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>


输出

Book name is : Perl 
Book author is : Mohtashim


示例2

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

在线演示

<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">
         // 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


'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">
         // Define a function which will work as a method
         function addPrice(amount) {
            with(this) {
               price = amount;
            }
         }
         function book(title, author) {
            this.title = title;
            this.author = author;
            this.price = 0;
            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


JavaScript 原生对象

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