JavaScript是一种面向对象编程(OOP)语言。如果一种编程语言为开发人员提供了四种基本功能,那么它就可以被称为面向对象的语言。封装是将相关信息(数据或方法)存储在一个对象中的能力。聚合是在另一个对象中存储一个对象的能力。继承是一个类的某些属性和方法依赖于另一个类(或多个类)的能力。 多态是编写一个函数或方法以多种不同方式工作的能力。 对象(Object)由属性组成。如果一个属性包含一个函数,它就被认为是对象的一个方法,否则该属性就被认为是一个属性。本文主要是JavaScript(JS) 对象(Object)简介。

1、对象(Object)属性

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

向对象添加属性的语法:

objectName.objectProperty = propertyValue;

例如,

下面的代码使用document对象的“title”属性获取文档标题。

var str = document.title;

2、对象(Object)方法

方法是让对象做某事或让某事被做的函数。函数和方法之间有一个微小的区别,函数是一个独立的语句单元,而方法是附加到一个对象上的,可以通过this关键字引用。方法对于从显示到屏幕的对象内容到对一组局部属性和参数执行复杂的数学操作的所有事情都很有用。

例如,

使用document对象的write()方法在文档上输出内容:

document.write("www.cjavapy.com");

3、用户定义的对象(Object)

所有用户定义的对象和内置对象都是名为object的对象的后代。有着继承关系。

1)new操作符

new操作符用于创建对象的实例。要创建对象,new操作符后面跟着构造函数方法。

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

例如,

var employee = new Object();
var books = new Array("C#", "Python", "Java");
var day = new Date("August 15, 2021");

2)Object()构造函数

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

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

例如,

下面示例演示如何创建一个对象:

<html>
   <head>
      <title>User-defined objects</title>     
      <script type = "text/javascript">
         var site= new Object();   // 创建对象
        site.subject = "C#";     // 为对象分配属性
        site.author  = "Levi";
      </script>      
   </head>
   <body>  
      <script type = "text/javascript">
         document.write("网站的主题: " +site.subject + "<br>");
         document.write("网站的作者 : " + site.author + "<br>");
      </script>   
   </body>
</html>

3、对象(Object)定义方法

需要通过给对象赋值方法来完成对象的定义。

例如,

示例演示添加一个函数和一个对象:

<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("C#", "Levi");
         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>

4、with 关键字

with关键字被用作引用对象的属性或方法的一种速记。

作为with参数指定的对象在接下来的块期间成为默认对象。对象的属性和方法可以在不命名对象的情况下使用。

语法

with (object) {
  没有对象名称和点的属性
}

例如,

<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("cjavapy", "Levi");
         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>

5、JavaScript原生对象

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

以下是所有重要的JavaScript原生对象的列表:

JavaScript(JS) Number 对象

JavaScript(JS) Boolean 对象

JavaScript(JS) String 对象

JavaScript(JS) Array 对象

JavaScript(JS) Date 对象

JavaScript(JS) Math 对象

JavaScript(JS) 正则表达式 和 RegExp 对象

推荐文档