Javascript並不像Java、C#等語言那樣支持真正的類。但是在js中可以定義偽類。做到這一點的工具就是構造函數和原型對象。首先介紹js中的構造函數。
Javascript中創建對象的語法是在new運算符的後面跟著一個函數的調用。如
復制代碼 代碼如下:
var obj = new Object();
var date = new Date();
運算符new首先創建一個新的沒有任何屬性的對象,然後調用該函數,把新的對象作為this關鍵字的值傳遞。
var date = new Date()的偽代碼的實現就是
var obj = {};
var date = Date.call(obj);
構造函數的作用就是初始化一個新創建的對象,並在使用對象前設置對象的屬性。如果定義自己的構造函數,只需要編寫一個為this添加屬性的函數就可以了。下面的代碼定義了一個構造函數:
復制代碼 代碼如下:
function Rectangle(w, h)
{
this.width = w;
this.height = h;
}
然後,可以使用new運算符調用這個函數來創建對象的實例
var rect = new Rectange(4,8);
構造函數的返回值
Javascript中的構造函數通常沒有返回值。但是,函數是允許有返回值的。如果一個構造函數有一個返回值,則返回的對象成為new表達式的值。在此情況下,作為this的對象將會被拋棄。