js三種創建對象的方法

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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章