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


(來源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>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM