重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
本文小編為大家詳細介紹“JavaScript構造函數和原型使用實例分析”,內容詳細,步驟清晰,細節處理妥當,希望這篇“JavaScript構造函數和原型使用實例分析”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
目前成都創新互聯已為近1000家的企業提供了網站建設、域名、網絡空間、網站托管運營、企業網站設計、莒縣網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發展。
缺點:存在內存浪費的問題,
如果有倆對象或者更多就會對一個復雜數據類型進行空間的多次開辟
構造函數原型prototype原型對象主要解決了內存浪費的問題構造函數通過原型分配的函數是所有對象所共享的。在JavaScript里每一個構造函數都有一個 prototype屬性,指向另一個對象。這個prototype就是一個對象,prototype這個對象的所有屬性和方法,都會被構造函數所擁有。這時候就可以使用prototype把方法放到里面供該對象所有的實例對象使用。
對象原型_ proto_對象
對象都會有一個屬性_ proto_ 指向構造函數的 prototype原型對象,之所以我們對象可以使用構造函數prototype原型對象的屬性和方法,就是因為對象有_ proto_ 原型的存在。
sy的 _ proto_ 和sym的 _ proto_ 是一樣的方法的查找規則:首先先看sy,sym對象身上是否有sing 方法,如果有就執行這個對象上的sing ,因為存在_ _ proto _ _,就去構造函數原型對象Prototype的存在,就去構造函數原型對象Prototype身上去查找sing這個方法(簡單來說就是,我自己有就使用,沒有就去原型對象里找)函數 和 對象創建時 會自動創建一個屬性 他兩指向同一個空對象
對象原型(_ proto _) 和構造函數( prototype )原型對象里面都有一個屬性constructor屬性, constructor我們稱為構造函數,因為它指回構造函數本身。
他們倆里面都有constructor如果prototype里面以對象的形式添加,那么就是prototype指向變了,指向了一個新的原型對象,這個新對象里沒有指向construor,需要自己手動指向一下
當訪問一個對象的屬性(包括方法)時,首先查找這個對象自身有沒有該屬性。 如果沒有就查找它的原型(也就是._ proto _指向的prototype原型對象)。 如果還沒有就查找原型對象的原型( Object的原型對象)。 依此類推一直找到Object為止( null )。
1.在構造函數中,里面this指向的是對象實例shanyu
可以通過原型對象,對原來的內置對象進行擴展自定義的方法.
數組和字符串內置對象不能給原型對象覆蓋操作Array.prototype = {} 如果進行該操作就會使本來有的方法被覆蓋掉,只能是Array.prototype.方法名= function(){} 的方式。
調用這個函數,并且修改函數運行時的this指向,有三個參數分別是thisArg 當前調用函數this的指向對象arg1 , arg2傳遞的其他參數
通過我們打的可以看到this的指向為Son,也就是Son使用了父構造函數里面的,uname,uage
es6之前并沒有extends所以可以使用構造函數和模型對象結合的方式來進行繼承操作
讀到這里,這篇“JavaScript構造函數和原型使用實例分析”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注創新互聯行業資訊頻道。