Objects

优质
小牛编辑
137浏览
2023-12-01

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

  • Encapsulation - 在对象中存储相关信息(无论是数据还是方法)的功能。

  • Aggregation - 将一个对象存储在另一个对象中的功能。

  • Inheritance - 类的某些属性和方法依赖于另一个类(或类的数量)的能力。

  • Polymorphism - 编写一种以各种不同方式工作的函数或方法的能力。

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

对象属性

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

向对象添加属性的语法是 -

objectName.objectProperty = propertyValue;

For example - 以下代码使用document对象的"title"属性获取文档标题。

var str = document.title;

对象方法

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

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

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

document.write("This is test");

User-Defined Objects

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

新的运算符

new运算符用于创建对象的实例。 要创建对象, new运算符后跟构造方法。

在以下示例中,构造函数方法是Object(),Array()和Date()。 这些构造函数是内置的JavaScript函数。

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

The Object() Constructor

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

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

例子1 (Example 1)

试试下面的例子; 它演示了如何创建一个Object。

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

输出 (Output)

Book name is : Perl 
Book author is : Mohtashim

例子2 (Example 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>

输出 (Output)

Book title is : Perl 
Book author is : Mohtashim

定义对象的方法

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

例子 (Example)

试试下面的例子; 它显示了如何与对象一起添加函数。

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

输出 (Output)

Book title is : Perl 
Book author is : Mohtashim 
Book price is : 100

'with'关键字

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

指定为with的参数的对象将成为后续块的持续时间的默认对象。 可以在不命名对象的情况下使用对象的属性和方法。

语法 (Syntax)

with对象的语法如下 -

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

例子 (Example)

请尝试以下示例。

<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有几个内置或本机对象。 这些对象可以在程序中的任何位置访问,并且可以在任何操作系统中运行的任何浏览器中以相同的方式工

以下是所有重要的JavaScript Native Objects列表 -