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

2018-01-06 19:14 更新

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


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

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

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

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

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

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

例子

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


function Book() { 
} 

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

Book 是一個(gè)構(gòu)造函數(shù),因?yàn)樗牡谝粋€(gè)字母大寫(xiě)。

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


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


注意

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


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

book1和book2是Book類型的實(shí)例。

new 運(yùn)算符自動(dòng)創(chuàng)建給定類型和對(duì)象的對(duì)象返回它。

我們可以使用 instanceof 運(yùn)算符來(lái)推斷對(duì)象的類型。

以下代碼顯示了使用新創(chuàng)建的對(duì)象的 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ù)接受單個(gè)命名參數(shù), name ,并將其分配給this對(duì)象的name屬性。

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

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

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


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)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)