JavaScript - ภาพรวมของวัตถุ

JavaScript เป็นภาษา Object Oriented Programming (OOP) ภาษาโปรแกรมสามารถเรียกได้ว่าเป็นภาษาเชิงวัตถุหากมีความสามารถพื้นฐานสี่ประการให้กับนักพัฒนา -

  • Encapsulation - ความสามารถในการจัดเก็บข้อมูลที่เกี่ยวข้องไม่ว่าจะเป็นข้อมูลหรือวิธีการรวมกันในวัตถุ

  • Aggregation - ความสามารถในการจัดเก็บวัตถุหนึ่งภายในวัตถุอื่น

  • Inheritance - ความสามารถของคลาสในการพึ่งพาคลาสอื่น (หรือจำนวนคลาส) สำหรับคุณสมบัติและวิธีการบางอย่าง

  • Polymorphism - ความสามารถในการเขียนฟังก์ชันหรือวิธีการเดียวที่ทำงานได้หลายวิธี

ออบเจ็กต์ประกอบด้วยคุณลักษณะ หากแอตทริบิวต์มีฟังก์ชันจะถือว่าเป็นวิธีการของออบเจ็กต์มิฉะนั้นแอตทริบิวต์จะถือเป็นคุณสมบัติ

คุณสมบัติของวัตถุ

คุณสมบัติของออบเจ็กต์อาจเป็นประเภทข้อมูลดั้งเดิมสามชนิดหรือประเภทข้อมูลนามธรรมใด ๆ ก็ได้เช่นอ็อบเจ็กต์อื่น คุณสมบัติของออบเจ็กต์มักเป็นตัวแปรที่ใช้ภายในในเมธอดของอ็อบเจ็กต์ แต่ยังสามารถเป็นตัวแปรที่มองเห็นได้ทั่วทั้งเพจ

ไวยากรณ์สำหรับการเพิ่มคุณสมบัติให้กับวัตถุคือ -

objectName.objectProperty = propertyValue;

For example - รหัสต่อไปนี้รับชื่อเอกสารโดยใช้ไฟล์ "title" คุณสมบัติของ document วัตถุ.

var str = document.title;

วิธีการวัตถุ

วิธีการคือฟังก์ชันที่ปล่อยให้วัตถุทำบางสิ่งบางอย่างหรือปล่อยให้บางสิ่งทำกับมัน มีความแตกต่างเล็กน้อยระหว่างฟังก์ชันและวิธีการ - ที่ฟังก์ชันเป็นหน่วยของคำสั่งแบบสแตนด์อโลนและวิธีการแนบกับวัตถุและสามารถอ้างอิงได้โดยthis คำสำคัญ.

วิธีการมีประโยชน์สำหรับทุกอย่างตั้งแต่การแสดงเนื้อหาของวัตถุไปยังหน้าจอไปจนถึงการดำเนินการทางคณิตศาสตร์ที่ซับซ้อนในกลุ่มของคุณสมบัติและพารามิเตอร์ท้องถิ่น

For example - ต่อไปนี้เป็นตัวอย่างง่ายๆเพื่อแสดงวิธีใช้ไฟล์ write() วิธีการของวัตถุเอกสารเพื่อเขียนเนื้อหาใด ๆ บนเอกสาร

document.write("This is test");

วัตถุที่ผู้ใช้กำหนด

อ็อบเจ็กต์ที่ผู้ใช้กำหนดเองและอ็อบเจ็กต์ในตัวทั้งหมดเป็นอ็อบเจ็กต์ที่เรียกว่า 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");

ตัวสร้าง 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

ตัวอย่างนี้แสดงให้เห็นถึงวิธีการสร้างวัตถุด้วยฟังก์ชันที่กำหนดโดยผู้ใช้ ที่นี่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">
         // 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กลายเป็นวัตถุเริ่มต้นสำหรับช่วงเวลาของบล็อกที่ตามมา คุณสมบัติและวิธีการสำหรับวัตถุสามารถใช้ได้โดยไม่ต้องตั้งชื่อวัตถุ

ไวยากรณ์

ไวยากรณ์สำหรับกับวัตถุมีดังนี้ -

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 มีออบเจ็กต์ในตัวหรือเนทีฟหลายตัว วัตถุเหล่านี้สามารถเข้าถึงได้ทุกที่ในโปรแกรมของคุณและจะทำงานในลักษณะเดียวกันในเบราว์เซอร์ใด ๆ ที่ทำงานในระบบปฏิบัติการใด ๆ

นี่คือรายการของ JavaScript Native Objects ที่สำคัญทั้งหมด -

  • JavaScript Number Object

  • วัตถุบูลีน JavaScript

  • วัตถุสตริง JavaScript

  • JavaScript Array Object

  • JavaScript Date Object

  • วัตถุคณิตศาสตร์ JavaScript

  • JavaScript RegExp Object