首页 > 语言 > JavaScript > 正文

深入理解JavaScript中的对象

2024-05-06 16:21:21
字体:
来源:转载
供稿:网友

这篇文章主要介绍了深入理解JavaScript中的对象,是JS入门学习中的基础知识,需要的朋友可以参考下

JavaScript是一种面向对象编程(OOP)语言。一种编程语言可以被称为面向对象的,它为开发者提供了四种基本功能:

封装 - 存储相关的信息,无论是数据或方法,还是对象

聚合 - 存储一个对象到另一个对象的内部

继承 - 类的能力依赖于另一个类(或类数),用于其部分的属性和方法

多态性 - 编写函数或者方法,在各种不同的方式工作

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

对象属性:

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

用于添加属性的目的语法是:

 

 
  1. objectName.objectProperty = propertyValue; 

示例 :

下面是一个简单的例子来说明如何利用“称号”的文件对象的属性来获取文档标题:

 

 
  1. var str = document.title; 

对象的方法:

方法是让对象做某件事。一个函数和一个方法,所不同的是一个 function语句的一个独立的单元和方法被附加到对象,并可以通过这个关键字被引用之间的差别不大。

方法可用于一切从显示对象的屏幕上的内容,以对一组本地的属性和参数执行复杂的数学运算是有用的。

例子:

下面是一个简单的例子来说明如何使用write()文档对象的方法写在文档中的任何内容:

 

 
  1. document.write("This is test"); 

用户定义的对象:

所有用户定义的对象和内置对象被称为对象的对象的后代。

new 操作符:

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

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

 

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

Object() 构造函数:

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

变量包含一个引用到新的对象。分配给该对象的属性是不变量,并且不使用var关键字来定义。

示例 1:

这个例子演示了如何创建一个对象:

 

 
  1. <html> 
  2. <head> 
  3. <title>User-defined objects</title> 
  4. <script type="text/javascript"
  5. var book = new Object(); // Create the object 
  6. book.subject = "Perl"// Assign properties to the object 
  7. book.author = "Mohtashim"
  8. </script> 
  9. </head> 
  10. <body> 
  11. <script type="text/javascript"
  12. document.write("Book name is : " + book.subject + "<br>"); 
  13. document.write("Book author is : " + book.author + "<br>"); 
  14. </script> 
  15. </body> 
  16. </html> 

示例 2:

这个例子演示如何创建一个对象,一个用户定义的函数。此处this关键字用于指已传递给函数的对象:

 

 
  1. <html> 
  2. <head> 
  3. <title>User-defined objects</title> 
  4. <script type="text/javascript"
  5. function book(title, author){ 
  6. this.title = title;  
  7. this.author = author; 
  8. </script> 
  9. </head> 
  10. <body> 
  11. <script type="text/javascript"
  12. var myBook = new book("Perl""Mohtashim"); 
  13. document.write("Book title is : " + myBook.title + "<br>"); 
  14. document.write("Book author is : " + myBook.author + "<br>"); 
  15. </script> 
  16. </body> 
  17. </html> 

定义方法的对象:

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

例子:

下面是一个简单的例子来说明如何与一个对象添加一个函数:

 

 
  1. <html> 
  2. <head> 
  3. <title>User-defined objects</title> 
  4. <script type="text/javascript"
  5.  
  6. // Define a function which will work as a method 
  7. function addPrice(amount){ 
  8. this.price = amount;  
  9.  
  10. function book(title, author){ 
  11. this.title = title;  
  12. this.author = author; 
  13. this.addPrice = addPrice; // Assign that method as property. 
  14.  
  15. </script> 
  16. </head> 
  17. <body> 
  18. <script type="text/javascript"
  19. var myBook = new book("Perl""Mohtashim"); 
  20. myBook.addPrice(100); 
  21. document.write("Book title is : " + myBook.title + "<br>"); 
  22. document.write("Book author is : " + myBook.author + "<br>"); 
  23. document.write("Book price is : " + myBook.price + "<br>"); 
  24. </script> 
  25. </body> 
  26. </html> 

with 关键字:

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

指定为参数的对象就成为接下来的块的持续时间的默认对象。为对象的属性和方法可以在不命名的对象。

语法

 

 
  1. with (object){ 
  2. properties used without the object name and dot 

例子:

 

 
  1. <html> 
  2. <head> 
  3. <title>User-defined objects</title> 
  4. <script type="text/javascript"
  5.  
  6. // Define a function which will work as a method 
  7. function addPrice(amount){ 
  8. with(this){ 
  9. price = amount;  
  10. function book(title, author){ 
  11. this.title = title;  
  12. this.author = author; 
  13. this.price = 0; 
  14. this.addPrice = addPrice; // Assign that method as property. 
  15. </script> 
  16. </head> 
  17. <body> 
  18. <script type="text/javascript"
  19. var myBook = new book("Perl""Mohtashim"); 
  20. myBook.addPrice(100); 
  21. document.write("Book title is : " + myBook.title + "<br>"); 
  22. document.write("Book author is : " + myBook.author + "<br>"); 
  23. document.write("Book price is : " + myBook.price + "<br>"); 
  24. </script> 
  25. </body> 
  26. </html> 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选