給構造函數(constructor)創建對象(object)
阿新 • • 發佈:2018-11-11
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)