1. 程式人生 > >給構造函數(constructor)創建對象(object)

給構造函數(constructor)創建對象(object)

itl 一個 圖片 對象創建 通過 獲取 code too his

(來源http://www.cnblogs.com/dongjc/p/5179561.html)

javascript是一種“基於prototype的面向對象語言“,與java有非常大的區別,無法通過類來創建對象。那麽,既然是面象對象的,如何來創建對象呢?

一、通過”字面量“方式創建。

方法:將成員信息寫到{}中,並賦值給一個變量,此時這個變量就是一個對象。
例如:

var person = (name:‘dongjc‘, work:function() {console.log(‘write coding‘)});
如果{}中為空,則將創建一個空對象:

var person = {} //創建空對象

演示代碼:
技術分享圖片
1 <script type="text/javascript">
2 var person = {
3     name: "dongjc",
4     age: 32,
5     Introduce: function () { alert("My name is " + this.name + ".I‘m " + this.age); }
6 };
7 person.Introduce();  
8 </script>
技術分享圖片 我們還可以給對象豐富成員信息。  對象.成員名稱 = 值;  對象[成員名稱] = 值;也可以獲取對象的成員信息。  對象.成員名稱;  對象[成員名稱]; 技術分享圖片
1 <script type="text/javascript">
2     var person = {
3     name: "dongjc",
4     age: 32,
5     Introduce: function () { alert("My name is " + this.name + ".I‘m " + this.age); }
6 };
7 person.worker = ‘coding‘; //豐富成員信息
8 </script>
技術分享圖片

二、通過”構造函數“方式創建。

 方法:

 var obj = new 函數名(); 

 這與通過類創建對象有本質的區別。通過該方法創建對象時,會自動執行該函數。這點類似於php通過創建對像時,會自動調用構造函數,因此該方法稱為通過"構造函數“方式創建對象。

技術分享圖片
 1 <script type="text/javascript">
 2 function Person() {
 3     this.name = "dongjc";    //通過this關鍵字設置默認成員
 4     var worker = ‘coding‘;    //沒有this關鍵字,對象創建後,該變量為非成員
 5     this.age = 32;
 6     this.Introduce = function () {
 7         alert("My name is " + this.name + ".I‘m " + this.age);
 8     };
 9     alert("My name is " + this.name + ".I‘m " + this.age);
10 };
11 var person = new Person();
12 person.Introduce();
13 </script>
技術分享圖片

此代碼一共會兩次跳出對話框,原因在於創建對象是自動執行了該函數。

註意:this關鍵字的使用。這裏的this與php中話法意思類似,指調用該函數的對象,這裏指的是person。

三、通過object方式創建。

方法:先通過object構造器new一個對象,再往裏豐富成員信息。

var obj = new Object();

實例代碼:

技術分享圖片
1 <script type="text/javascript">
2 var person = new Object();
3 person.name = "dongjc";
4 person.age = 32;
5 person.Introduce = function () {
6         alert("My name is " + this.name + ".I‘m " + this.age);
7     };
8 person.Introduce();
9 </script>

給構造函數(constructor)創建對象(object)