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