摘要:在構(gòu)造函數(shù)中用進(jìn)行聲明私有是指,在外部環(huán)境中不能直接訪問,該屬性方法只能在對象的構(gòu)造函數(shù)內(nèi)訪問。聲明在構(gòu)造函數(shù)里的變量和方法,沒有用到靜態(tài)是指,屬性方法是歸屬于類的,而非實(shí)例對象。
什么是Javascript的公有屬性/方法,私有屬性/方法,靜態(tài)屬性/方法,共享屬性/方法?
公有是指,在外部環(huán)境中可以獲取的,可以直接通過實(shí)例對象用”.”運(yùn)算符操作獲得。(在構(gòu)造函數(shù)中用this進(jìn)行聲明)
私有是指,在外部環(huán)境中不能直接訪問,該屬性/方法只能在對象的構(gòu)造函數(shù)內(nèi)訪問。(聲明在構(gòu)造函數(shù)里的變量和方法,沒有用到this)
靜態(tài)是指,屬性/方法是歸屬于類的,而非實(shí)例對象。可以直接通過類名來調(diào)用得到。
共享是指,實(shí)例對象之間,共享屬性和方法,借助向原型對象添加屬性和方法,可以實(shí)現(xiàn)。
(雖然都有“公共”的含義,但是可以看出靜態(tài)的和共享的之間的區(qū)別了吧)
為什么把方法寫在prototype中而不寫在構(gòu)造函數(shù)中參考: https://blog.csdn.net/FJ20100...
因?yàn)閷懺跇?gòu)造函數(shù)中更消耗內(nèi)存。寫在構(gòu)造函數(shù)中的話,每次用構(gòu)造函數(shù)new一個(gè)對象的話,都會(huì)創(chuàng)建一份新的屬性和方法存到內(nèi)存中。而寫在原型對象中就沒有這個(gè)問題,對于這個(gè)類,只有一個(gè)原型對象,因此寫在原型對象之下的方法也不會(huì)多次復(fù)制,永遠(yuǎn)只有一份。
(如果寫在原型對象中,多個(gè)實(shí)例調(diào)用這個(gè)方法,會(huì)有什么問題嗎?比如對同一個(gè)對象進(jìn)行操作?)驗(yàn)證方法 方法用 ==進(jìn)行比較,即內(nèi)存地址的比較
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/104257.html
摘要:關(guān)于函數(shù)聲明他的一個(gè)重要特征就是函數(shù)聲明提升就是在執(zhí)行代碼之前會(huì)先讀取函數(shù)聲明這意味著可以把函數(shù)聲明放到調(diào)用他的語句的后面將聲明放到了后面關(guān)于函數(shù)表達(dá)式創(chuàng)建一個(gè)匿名函數(shù)然后賦值給一個(gè)變量函數(shù)體可以返回一個(gè)匿名函數(shù)返回的函數(shù)可以賦值給一個(gè)變量 關(guān)于函數(shù)聲明 他的一個(gè)重要特征就是函數(shù)聲明提升,就是在執(zhí)行代碼之前會(huì)先讀取函數(shù)聲明,這意味著可以把函數(shù)聲明放到調(diào)用他的語句的后面 sayHi();...
面向?qū)ο蟮恼Z言有一個(gè)標(biāo)志,即擁有類的概念,抽象實(shí)例對象的公共屬性與方法,基于類可以創(chuàng)建任意多個(gè)實(shí)例對象,一般具有封裝、繼承、多態(tài)的特性!但JS中對象與純面向?qū)ο笳Z言中的對象是不同的,ECMA標(biāo)準(zhǔn)定義JS中對象:無序?qū)傩缘募?,其屬性可以包含基本值、對象或者函?shù)。 我們首選要了解封裝、繼承、多態(tài)又有如何特點(diǎn) 封裝:顧名思義來封裝變量和函數(shù)封裝->特點(diǎn):高度復(fù)用,降低冗余度,更有利于模塊化編程,能夠?yàn)?..
摘要:圖片描述缺點(diǎn)是無法實(shí)現(xiàn)多繼承可以在構(gòu)造函數(shù)中,為實(shí)例添加實(shí)例屬性。 對象的方法 Object.assign() 對象可以簡寫 ,如果 key 和 value 相等則可以簡寫 let name = xm; let age = 2; let obj = { name, age, fn(){ // 可以省略函數(shù)關(guān)鍵字和冒號(hào): console.log(2...
摘要:面向?qū)ο笕筇匦跃褪欠庋b繼承和多態(tài),簡單理解,對于貓這種動(dòng)物,它本身就是一個(gè)封裝好的類,你只需要供它吃喝輸入,它就能表現(xiàn)貓的行為輸出,同時(shí)它繼承了動(dòng)物所具有的習(xí)性吃東西等,而不同的貓因?yàn)樗幁h(huán)境或者習(xí)性的不同,可能會(huì)有不同的表現(xiàn)和行為,這就 面向?qū)ο笕筇匦跃褪欠庋b繼承和多態(tài),簡單理解,對于貓這種動(dòng)物,它本身就是一個(gè)封裝好的類,你只需要供它吃喝(輸入),它就能表現(xiàn)貓的行為(輸出),同時(shí)...
摘要:在中是沒有這樣的關(guān)鍵字的,我們需要這樣做定義在方法內(nèi)也就是內(nèi)部,也可以看作成構(gòu)造函數(shù)的變量,就是私有變量。移動(dòng)氣球我們需要用到定時(shí)器。 什么是JavaScript? 我們可以從幾個(gè)方面去說JavaScript是什么: 基于對象 javaScript中內(nèi)置了許多對象供我們使用【String、Date、Array】等等 javaScript也允許我們自己自定義對象 事件驅(qū)動(dòng) ...
閱讀 1622·2021-09-22 15:35
閱讀 2132·2021-09-14 18:04
閱讀 982·2019-08-30 15:55
閱讀 2531·2019-08-30 15:53
閱讀 2764·2019-08-30 12:45
閱讀 1288·2019-08-29 17:01
閱讀 2660·2019-08-29 15:30
閱讀 3594·2019-08-29 15:09