構(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é)果。...
構(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é)果。
更多建議: