国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JavaScript系列從入門到精通系列第二十篇:使用工廠方法創(chuàng)建JavaScript對象,JavaScript構(gòu)造函數(shù)詳解,JavaScript類概念的介紹

這篇具有很好參考價值的文章主要介紹了JavaScript系列從入門到精通系列第二十篇:使用工廠方法創(chuàng)建JavaScript對象,JavaScript構(gòu)造函數(shù)詳解,JavaScript類概念的介紹。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

JavaScript系列從入門到精通系列第二十篇:使用工廠方法創(chuàng)建JavaScript對象,JavaScript構(gòu)造函數(shù)詳解,JavaScript類概念的介紹,# JavaScript專欄,javascript,udp,開發(fā)語言

文章目錄

一:使用工廠方法創(chuàng)建對象

1:原始寫法

2:工廠方式

3:結(jié)果驗證?

二:構(gòu)造函數(shù)

1:什么是構(gòu)造函數(shù)

2:構(gòu)造函數(shù)和普通函數(shù)的區(qū)別

3:構(gòu)造函數(shù)的執(zhí)行流程

三:類

1:什么是類

2:如何檢查一個對象是否是個類的實例

3:Object的地位

四:構(gòu)造函數(shù)修改

1:重大問題

2:如何改造


一:使用工廠方法創(chuàng)建對象

1:原始寫法

var obj = {
    name: "孫悟空",
    age:18,
    gender:"男"
    sayName:function (){
        alert(this.name)
    }
}

obj.sayName();//孫悟空

var obj2 = {
    name: "豬八戒",
    age:18,
    gender:"男"
    sayName:function (){
        alert(this.name)
    }
}

var obj2 = {
    name: "沙和尚",
    age:18,
    gender:"男"
    sayName:function (){
        alert(this.name)
    }
}

? ? ? ? 這種頻繁創(chuàng)建對象沒有問題,但是太繁瑣了。我們可以使用工廠方式創(chuàng)建對象。

2:工廠方式

//使用工廠方法創(chuàng)建對象
function createPerson(name,age,gender){
    //創(chuàng)建一個對象
    var obj = new Object();
    obj.name = name;
    obj.age = age;
    obj.gender = gender;
    obj.sayName  = function(){
        alert(this.name);
    }
    return obj;
}

var obj = createPersion('孫悟空',19,'男');
console.log(obj.sayName());

3:結(jié)果驗證?

JavaScript系列從入門到精通系列第二十篇:使用工廠方法創(chuàng)建JavaScript對象,JavaScript構(gòu)造函數(shù)詳解,JavaScript類概念的介紹,# JavaScript專欄,javascript,udp,開發(fā)語言

? ? ? ? 使用工廠方法創(chuàng)建的對象,使用的構(gòu)造函數(shù)都是Object,所以創(chuàng)建的對象都是Object的類型。?這就導致我們無法區(qū)分多種不同類型的對象。

二:構(gòu)造函數(shù)

1:什么是構(gòu)造函數(shù)

? ? ? ? 我們創(chuàng)建狗對象和人對象,都是通過new Object()創(chuàng)建的對象?,F(xiàn)在我們想?yún)^(qū)分一下類型。就比如,我們特別想new Person()這樣的構(gòu)造函數(shù),或者new Dog()這樣的構(gòu)造函數(shù),但是事實證明這樣一運行就報錯了。Person is? not defined

2:構(gòu)造函數(shù)和普通函數(shù)的區(qū)別

????????這里邊我們就可以創(chuàng)建一個構(gòu)造函數(shù),專門創(chuàng)建一個Person對象。構(gòu)造函數(shù)就是一個普通函數(shù)。創(chuàng)建方式和普通方式?jīng)]有區(qū)別,但是構(gòu)造函數(shù)習慣上首字母大寫。

????????構(gòu)造函數(shù)和普通函數(shù)的區(qū)別就是調(diào)用方式不同,普通函數(shù)是直接調(diào)用,而構(gòu)造函數(shù)需要使用new關鍵字進行調(diào)用。

function Person(){
}

var per = new Person();

? ? ? ? 調(diào)用時候,加new是構(gòu)造函數(shù)的調(diào)用方式。不加new是普通函數(shù)的執(zhí)行流程

3:構(gòu)造函數(shù)的執(zhí)行流程

function Person(name,age,gender){
    this.name = name;
    this.age = age;
    this.gender = gender;
}

var per = new Person("孫悟空",18,'男');

console.log(per);

1: 調(diào)用構(gòu)造函數(shù)立刻創(chuàng)建一個對象

2:將新建的對象設置為函數(shù)中的this,在構(gòu)造函數(shù)中,可以使用this來引用新創(chuàng)建的對象。

3:逐行執(zhí)行函數(shù)中的代碼

4:將對象作為返回值進行返回,這就是構(gòu)造函數(shù)神奇的地方,沒有返回語句,卻可以返回創(chuàng)建對象。

JavaScript系列從入門到精通系列第二十篇:使用工廠方法創(chuàng)建JavaScript對象,JavaScript構(gòu)造函數(shù)詳解,JavaScript類概念的介紹,# JavaScript專欄,javascript,udp,開發(fā)語言

三:類

1:什么是類

? ? ? ? ?什么是類?構(gòu)造函數(shù)就是類。

2:如何檢查一個對象是否是個類的實例

function Person(name,age,gender){
    this.name = name;
    this.age = age;
    this.gender = gender;
}

var per = new Person("孫悟空",18,'男');

console.log(per);

console.log(per instanceof Person)

結(jié)果驗證:?

JavaScript系列從入門到精通系列第二十篇:使用工廠方法創(chuàng)建JavaScript對象,JavaScript構(gòu)造函數(shù)詳解,JavaScript類概念的介紹,# JavaScript專欄,javascript,udp,開發(fā)語言

3:Object的地位

? ? ? ? 所以的對象都是Object的后代,所以所有對象instanceof Object都是true。

四:構(gòu)造函數(shù)修改

1:重大問題

//使用工廠方法創(chuàng)建對象
function createPerson(name,age,gender){
    //創(chuàng)建一個對象
    var obj = new Object();
    obj.name = name;
    obj.age = age;
    obj.gender = gender;
    obj.sayName  = function(){
        alert(this.name);
    }
    return obj;
}

var obj = createPersion('孫悟空',19,'男');
var obj1 = createPersion('孫悟空',19,'男');
var obj2 = createPersion('孫悟空',19,'男');

? ? ? ? obj與obj1與obj2之間的三個對象之間都有這個sayName函數(shù)對象,并且地址不相等。

2:如何改造

? ? ? ? 將sayName方法在全局作用域中進行定義。

function fun (){
     alert(this.name);
 }
//使用工廠方法創(chuàng)建對象
function createPerson(name,age,gender){
    //創(chuàng)建一個對象
    var obj = new Object();
    obj.name = name;
    obj.age = age;
    obj.gender = gender;
    obj.sayName  = fun;
    return obj;
}

var obj = createPersion('孫悟空',19,'男');
var obj1 = createPersion('孫悟空',19,'男');
var obj2 = createPersion('孫悟空',19,'男');

? ? ? ? 這樣構(gòu)造函數(shù)執(zhí)行一萬次,最終的函數(shù)對象都只有一個。文章來源地址http://www.zghlxwxcb.cn/news/detail-717622.html

到了這里,關于JavaScript系列從入門到精通系列第二十篇:使用工廠方法創(chuàng)建JavaScript對象,JavaScript構(gòu)造函數(shù)詳解,JavaScript類概念的介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • MySQL篇----第二十篇

    MySQL篇----第二十篇

    前些天發(fā)現(xiàn)了一個巨牛的人工智能學習網(wǎng)站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉(zhuǎn)到網(wǎng)站,這篇文章男女通用,看懂了就去分享給你的碼吧。 NULL 這個值表示 UNKNOWN(未知):它不表示“”(空字符串)。對 NULL 這個值的任何比較都會生產(chǎn) 一個 NULL 值。您不能把

    2024年02月20日
    瀏覽(17)
  • 二十三種設計模式第二十篇--備忘錄模式

    二十三種設計模式第二十篇--備忘錄模式

    備忘錄模式,備忘錄模式屬于行為型模式。它允許在不破壞封裝的情況下捕獲和恢復對象的內(nèi)部狀態(tài)。 保存一個對象的某個狀態(tài),以便在適當?shù)臅r候恢復對象,該模式通過創(chuàng)建一個備忘錄對象來保存原始對象的狀態(tài),并將其存儲在一個負責管理備忘錄的負責人對象中。 備忘

    2024年02月14日
    瀏覽(23)
  • 【MySQL數(shù)據(jù)庫 | 第二十篇】explain執(zhí)行計劃

    【MySQL數(shù)據(jù)庫 | 第二十篇】explain執(zhí)行計劃

    目錄 ?前言: explain:? 語法: 總結(jié): ? ? ? ? 上一篇我們介紹了從時間角度分析MySQL語句執(zhí)行效率的三大工具:SQL執(zhí)行頻率,慢日志查詢,profile。但是這三個方法也只是在時間角度粗略的查看SQL語句效率,我們要想看一個語句的真正性能,還要借助explain來查看SQL語句的優(yōu)

    2024年02月11日
    瀏覽(29)
  • 【從零開始學習JAVA | 第二十篇】常見API介紹 Math

    【從零開始學習JAVA | 第二十篇】常見API介紹 Math

    目錄 前言: ?MATH: Math類中的常用方法: 總結(jié): ? ? ? ? ? ? ? ? 本篇往后我們會詳細介紹一些常用的API,今天我們介紹的是Math的常用方法。但是其實我們不需要記住所有的方法,在日常工作中自己學會查詢API文檔就可以了。 Math類是Java中提供的一個標準類, 它包含了許多

    2024年02月15日
    瀏覽(28)
  • Iceberg從入門到精通系列之二十二:Spark DDL

    要在 Spark 中使用 Iceberg,請首先配置 Spark 目錄。 Iceberg 使用 Apache Spark 的 DataSourceV2 API 來實現(xiàn)數(shù)據(jù)源和目錄。 Spark 3 可以使用 USINGiceberg 子句在任何 Iceberg 目錄中創(chuàng)建表: Iceberg會將Spark中的列類型轉(zhuǎn)換為對應的Iceberg類型。詳細信息請查看創(chuàng)建表的類型兼容性部分。 PARTITIONE

    2024年02月19日
    瀏覽(21)
  • 【Python入門系列】第二十一篇:Python物聯(lián)網(wǎng)和傳感器應用

    物聯(lián)網(wǎng)和傳感器在現(xiàn)代科技中扮演著重要的角色。物聯(lián)網(wǎng)是指通過互聯(lián)網(wǎng)連接各種設備和傳感器,實現(xiàn)設備之間的通信和數(shù)據(jù)交換。傳感器則是物聯(lián)網(wǎng)的核心組成部分,用于感知和采集環(huán)境中的各種數(shù)據(jù)。在這篇文章中,我們將探討使用Python開發(fā)物聯(lián)網(wǎng)和傳感器應用的主題。

    2024年02月15日
    瀏覽(23)
  • JavaScript系列從入門到精通系列第十七篇:JavaScript中的全局作用域

    JavaScript系列從入門到精通系列第十七篇:JavaScript中的全局作用域

    文章目錄 前言 1:什么叫作用域 一:全局作用域 1:全局變量的聲明 2:變量聲明和使用的順序 3:方法聲明和使用的順序 ? ? ? ? 可以起作用的范圍 ? ? ? ? 我們的作用域只有全局作用域和函數(shù)作用域。? ? ? ? ? 直接編寫到Script里邊的代碼,就是全局作用域。全局作用域

    2024年02月06日
    瀏覽(22)
  • JavaScript從入門到精通系列第三十八篇:詳解JavaScript中DOM的查詢

    JavaScript從入門到精通系列第三十八篇:詳解JavaScript中DOM的查詢

    ???? 學習交流群: ??1:這是 孫哥suns 給大家的福利! ??2:我們免費分享Netty、Dubbo、k8s、Mybatis、Spring...應用和源碼級別的視頻資料 ????3:QQ群: 583783824 ? ???? ?工作微信: BigTreeJava 拉你進微信群,免費領取! ????4:本文章內(nèi)容出自上述:Spring應用課程!????

    2024年02月05日
    瀏覽(24)
  • JavaScript系列從入門到精通系列第九篇:JavaScript中賦值運算符和關系運算符以及Unicode編碼介紹

    JavaScript系列從入門到精通系列第九篇:JavaScript中賦值運算符和關系運算符以及Unicode編碼介紹

    文章目錄 一:賦值運算符 1:= 2:+= 3:-= 4:*= 5:/= 6:%= 二:關系運算符? 1:數(shù)值類型關系運算 (一): (二):= (三): (四):= 2:其他類型關系運算 三:Unicode編碼表 ? ? ? ? =右側(cè)的值可以賦值給左側(cè)的變量。 ????????上邊這兩個寫法是一樣的。 ????????? ??????

    2024年02月08日
    瀏覽(21)
  • Oracle數(shù)據(jù)庫從入門到精通系列之二十一:Oracle 19c數(shù)據(jù)庫增加重做日志大小

    在此最佳實踐中,我們增加了 Oracle 重做日志的大小以提高數(shù)據(jù)庫性能。適當調(diào)整數(shù)據(jù)庫重做日志的大小可以減少數(shù)據(jù)庫中的等待事件,從而優(yōu)化數(shù)據(jù)庫系統(tǒng)。 數(shù)據(jù)庫重做日志至少包含兩個文件,負責存儲對數(shù)據(jù)庫所做的任何更新。重做日志對于數(shù)據(jù)庫至關重要,因為它們可

    2024年04月26日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包