首頁 >web前端 >js教程 >深入理解JavaScript中的物件_基礎知識

深入理解JavaScript中的物件_基礎知識

WBOY
WBOY原創
2016-05-16 15:56:471123瀏覽

 JavaScript是一種物件導向程式設計(OOP)語言。一種程式語言可以稱為物件導向的,它為開發者提供了四種基本功能:

  •     封裝 - 儲存相關的訊息,無論是資料或方法,或是物件
  •     聚合 -  儲存一個物件到另一個物件的內部
  •     繼承 - 類別的能力依賴另一個類別(或類別數),用於其部分的屬性和方法
  •     多態性 - 寫出函數或方法,以各種不同的方式運作

物件是由屬性。如果屬性包含一個函數,它被認為是一個物件的方法,否則,該屬性被認為是屬性。
物件屬性:

物件的屬性可以是任何三種基本資料類型的,或任何抽象資料類型,如另一個物件。物件屬性通常是內部使用的物件的方法的變量,但也可以是用於整個頁面全域可見的變數。

用來新增屬性的目的語法是:

objectName.objectProperty = propertyValue;

範例 :

以下是一個簡單的例子來說明如何利用「稱號」的文件物件的屬性來取得文件標題:

var str = document.title;


物件的方法:

方法是讓物件做某件事。一個函數和一個方法,所不同的是一個 function語句的一個獨立的單元和方法被附加到對象,並且可以通過這個關鍵字被引用之間的差別不大。

方法可用於一切從顯示物件的螢幕上的內容,以對一組本地的屬性和參數執行複雜的數學運算是有用的。
例:

以下是一個簡單的例子來說明如何使用write()文檔物件的方法寫在文件中的任何內容:

document.write("This is test");


使用者定義的物件:

所有使用者定義的物件和內建物件被稱為物件的物件的後代。
new 運算子:

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>

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

 
定義方法的物件:

前面的範例示範如何建構函式建立物件並指派屬性。但是,我們需要透過分配方法,以它來完成一個物件的定義。
例:

以下是一個簡單的例子來說明如何與一個物件加入一個函數:

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

 
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>

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn