溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何在JavaScript中定義構(gòu)造器模式

發(fā)布時間:2021-05-11 15:34:50 來源:億速云 閱讀:173 作者:Leah 欄目:web開發(fā)

如何在JavaScript中定義構(gòu)造器模式?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

JavaScript有什么特點

1、js屬于一種解釋性腳本語言;2、在絕大多數(shù)瀏覽器的支持下,js可以在多種平臺下運行,擁有著跨平臺特性;3、js屬于一種弱類型腳本語言,對使用的數(shù)據(jù)類型未做出嚴格的要求,能夠進行類型轉(zhuǎn)換,簡單又容易上手;4、js語言安全性高,只能通過瀏覽器實現(xiàn)信息瀏覽或動態(tài)交互,從而有效地防止數(shù)據(jù)的丟失;5、基于對象的腳本語言,js不僅可以創(chuàng)建對象,也能使用現(xiàn)有的對象。

構(gòu)造器模式與工廠模式的不同之處在于:

① 構(gòu)造函數(shù)方法沒有顯示的創(chuàng)建對象 (new Object());

② 直接將屬性和方法賦值給 this 對象;

③ 沒有 return 語句。

構(gòu)造函數(shù)方法的規(guī)范:

① 函數(shù)名和實例化構(gòu)造名相同且大寫 (非強制,但有助于區(qū)分構(gòu)造函數(shù)和普通函數(shù));

② 通過構(gòu)造函數(shù)創(chuàng)建對象,必須使用new運算符。

function Person(name, age) {
  this.name = name;
    this.age = age;
  this.showName = function() {
      alert(this.name);
    };
}
var person1 = new Person("Alice", 23);
var person2 = new Person("Bruce", 22);

構(gòu)造器模式的問題:每個方法都要在每個實例上重新創(chuàng)建一遍。

原因:JavaScript中的函數(shù)是對象,每定義一個函數(shù),就是實例化了一個Funtion對象,因此,使用構(gòu)造函數(shù)創(chuàng)建的每個實例都有一個同名的方法,但這些方法不是同一個Function的實例,因為不同實例上的同名函數(shù)是不相等的。

看完上述內(nèi)容,你們掌握如何在JavaScript中定義構(gòu)造器模式的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI