Javascript構(gòu)造函數(shù)

2018-01-06 19:14 更新

Javascript面向?qū)ο笤O(shè)計 - Javascript構(gòu)造函數(shù)


構(gòu)造函數(shù)只是一個與 new 一起使用來創(chuàng)建對象的函數(shù)。

我們使用了內(nèi)置的JavaScript構(gòu)造函數(shù),如Object,Array和Function。

構(gòu)造函數(shù)創(chuàng)建具有相同屬性和方法的對象。

構(gòu)造函數(shù)創(chuàng)建具有相同屬性和方法的對象。...

構(gòu)造函數(shù)只是以相同方式定義的函數(shù)。

構(gòu)造函數(shù)只是以相同方式定義的函數(shù)。...

例子

例如,以下代碼創(chuàng)建一個Book函數(shù)作為其構(gòu)造函數(shù):


function Book() { 
} 

例如,以下代碼創(chuàng)建一個Book函數(shù)作為其構(gòu)造函數(shù):...

Book 是一個構(gòu)造函數(shù),因為它的第一個字母大寫。

定義構(gòu)造函數(shù)后,我們可以創(chuàng)建實例,如以下兩個 Book 對象:


var book1 = new Book(); 
var book2 = new Book(); 


注意

當(dāng)沒有參數(shù)傳遞到構(gòu)造函數(shù)中時,我們甚至可以省略括號:


var book1 = new Book; 
var book2 = new Book; 

book1和book2是Book類型的實例。

new 運算符自動創(chuàng)建給定類型和對象的對象返回它。

我們可以使用 instanceof 運算符來推斷對象的類型。

以下代碼顯示了使用新創(chuàng)建的對象的 instanceof :


function Book() { 
} 

var book1 = new Book(); 
var book2 = new Book(); 

console.log(book1 instanceof Book);     // true 
console.log(book2 instanceof Book);     // true 

上面的代碼生成以下結(jié)果。

上面的代碼生成以下結(jié)果。...



筆記2

構(gòu)造函數(shù)屬性指向該構(gòu)造函數(shù)。

構(gòu)造函數(shù)屬性指向該構(gòu)造函數(shù)。...


function Book() { /*from w  ww  .j  ava 2 s. co  m*/
} 

var book1 = new Book(); 
var book2 = new Book(); 


console.log(book1.constructor === Book);     // true 
console.log(book2.constructor === Book);     // true 

上面的代碼生成以下結(jié)果。

以下代碼顯示如何添加任何屬性里面的構(gòu)造函數(shù):


function Book(name) { 
   this.name = name; 
   this.writeLine = function() { 
        console.log(this.name); 
    }; 
} 

新版本的 Book 構(gòu)造函數(shù)接受單個命名參數(shù), name ,并將其分配給this對象的name屬性。

構(gòu)造函數(shù)為對象定義一個 writeLine()方法。

在調(diào)用構(gòu)造函數(shù)時, this 對象由 new 創(chuàng)建,它是構(gòu)造函數(shù)類型的一個實例。

下面的代碼顯示了我們可以使用 Book 構(gòu)造函數(shù)創(chuàng)建對象帶有初始化的名稱屬性:


function Book(name) { // www. j  a v  a2s. c om
   this.name = name; 
   this.writeLine = function() { 
        console.log(this.name); 
    }; 
} 

var book1 = new Book("Javascript"); 
var book2 = new Book("CSS"); 

console.log(book1.name);           // "Javascript" 
console.log(book2.name);           // "CSS" 

book1.writeLine();                   // outputs "Javascript" 
book2.writeLine();                   // outputs "CSS" 

上面的代碼生成以下結(jié)果。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號