7.原 型

7.1原型

在這里插入圖片描述
在這里插入圖片描述
【例如】
在這里插入圖片描述
另外- this指向:
構造函數和原型對象中的this都指向實例化的對象

7.2 constructor屬性

每個原型對象里面都有個constructor屬性( constructor構造函數)
作用:該屬性指向該原型對象的構造函數
在這里插入圖片描述
使用場景:
如果有多個對象的方法,我們可以給原型對象采取對象形式賦值.
但是這樣就會覆蓋構造函數原型對象原來的內容,這樣修改后的原型對象constructor就不再指向當前構造函數了
此時,我們可以在修改后的原型對象中,添加一個constructor指向原來的構造函數。
【例如】

<script>function Star() {}Star.prototype = {// 手動利用constructor 指回 Star構造函數constructor: Star,sing: function () {console.log('唱歌');},dance: function () {console.log('跳舞');}}console.log(Star.prototype) // 指向 Star
</script>

在這里插入圖片描述

7.3對象原型

對象都會有一個屬性 __proto__ 指向構造函數的prototype原型對象,之所以我們對象可以使用構造函數prototype原型對象的屬性和方法,就是因為對象有 __proto__ 原型的存在。
在這里插入圖片描述

注意:
? __proto__ 是JS非標準屬性
? [[prototypel] 和 __proto__ 意義相同
? 用來表明當前實例對象指向哪個原型對象prototype
? __proto__ 對象原型里面也有一個constructor屬性,指向創建該實例對象的構造函數
?只要是對象,就有原型 __proto__

7.4原型繼承

繼承是面向對象編程的另一個特征,通過繼承進一步提升代碼封裝的程度,JS中大多是借助原型對象實現繼承的特性。

1.封裝-抽取公共部分
把男人和女人公共的部分抽取出來放到人類里面
在這里插入圖片描述
2.問題和原因
男人和女人都同時使用了同一個對象,根據引用類型的特點,他們指向同一個對象,修改一個就都會受影響
在這里插入圖片描述
3.解決:
需求:男人和女人不要使用同一個對象,但是不同對象里面包含相同的屬性和方法
因為new每次都會創建一個新的對象,所以用構造函數來處理
在這里插入圖片描述

7.5原型鏈

基于原型對象的繼承使得不同構造函數的原型對象關聯在一起,并且這種關聯的關系是一種鏈狀的結構,我們將原型對象的鏈狀結構關系稱為原型鏈
在這里插入圖片描述
在這里插入圖片描述
記住兩句話
1.只要是對象,就有原型 __proto__,指向原型對象
2.只要是原型對象,就有constructor,指向創建該原型對象的構造函數

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/39128.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/39128.shtml
英文地址,請注明出處:http://en.pswp.cn/news/39128.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Springboot 實踐(4)swagger-ui 測試controller

前文項目操作&#xff0c;完成了項目的創建、數據源的配置以及數據庫DAO程序的生成與配置。此文講解利用swagger-ui界面&#xff0c;測試生成的數據庫DAO程序。目前&#xff0c;項目swagger-ui界面如下&#xff1a; 以”用戶管理”為例&#xff0c;簡單講述swagger-ui測試數據庫…

無涯教程-Perl - s函數

描述 這不是功能。這是正則表達式替換運算符。根據PATTERN中指定的正則表達式,將數據替換為REPLACE。與m //一樣,分隔符由s后的第一個字符定義。 語法 以下是此函數的簡單語法- s/PATTERN/REPLACE/返回值 如果失敗,此函數返回0,如果成功,則返回替換次數。 例 以下是顯示…

筆記:移植xenomai到nuc972

xenomai是一個實時操作系統,想要使用它,先要移植I-pipe補丁 補丁在xenomai / ipipe-arm GitLab 我的內核是4.4-248的,合并上去會有幾個小錯誤,隨便改改就好 編譯內核沒有報錯之后,接下來需要修改arch/arm/mach-nuc970/time.c 修改方法參考補丁里面其它設備的定時器驅動,就…

學習Vue:數據綁定的基本概念

在 Vue.js 中&#xff0c;Vue 實例是您構建應用程序的核心。它允許您將數據和界面連接起來&#xff0c;實現動態的數據綁定&#xff0c;使您的應用程序能夠根據數據的變化自動更新界面。讓我們來深入了解 Vue 實例與數據綁定的基本概念。 Vue 實例與數據綁定 什么是 Vue 實例&…

OPC【2】——Relationships

引言 Relationships由一系列Relationship構成。將Abstract Package看做是一個圖數據結構&#xff0c;則Relationships是圖數據中的邊集合。 Package Relationships 對于Package Relationships&#xff0c;其所有引用關系的source對象為Abstract Package&#xff0c;或者看…

【Python機器學習】實驗10 支持向量機

文章目錄 支持向量機實例1 線性可分的支持向量機1.1 數據讀取1.2 準備訓練數據1.3 實例化線性支持向量機1.4 可視化分析 實例2 核支持向量機2.1 讀取數據集2.2 定義高斯核函數2.3 創建非線性的支持向量機2.4 可視化樣本類別 實例3 如何選擇最優的C和gamma3.1 讀取數據3.2 利用數…

Open3D 最小二乘擬合平面(SVD分解法)

目錄 一、算法原理二、代碼實現三、結果展示1、點云2、擬合結果四、優秀博客本文由CSDN點云俠原創,原文鏈接。爬蟲網站自重。 一、算法原理 本文實現矩陣奇異值分解方法的最小二乘擬合平面。原理如下: 對于得到的 n n

歐拉函數(質因子分解)

思路&#xff1a; (1)歐拉函數&#xff1a;輸入n則輸出1~n中與n互質的數的個數。 &#xff08;2&#xff09;計算公式&#xff1a; &#xff08;3&#xff09;證明&#xff1a;&#xff08;容斥原理&#xff09;對于n個數&#xff0c;先分別摘除所有被pi整除的數&#xff0c;…

億信ABI有什么不同,來看最新DEMO演示

為了給用戶營造更好的體驗環境&#xff0c;提供更豐富、更完善的服務&#xff0c;億信華辰旗下核心產品億信ABI DEMO再次上新啦&#xff01;本次億信ABI DEMO環境在原有基礎上煥新升級&#xff0c;帶來了全新的主視覺界面、豐富的行業應用和功能演示DEMO&#xff0c;我們一起來…

季度到季度的組件選擇

組件&#xff1a;<template><div class"quarter"><div class"input-wrap" id"closeId" mouseover"handler" click.stop"btn" :style"{color:colorItem}"><i class"el-icon-date"&…

【Java】BF算法(串模式匹配算法)

?? 什么是BF算法 BF算法&#xff0c;即暴力算法&#xff0c;是普通的模式匹配算法&#xff0c;BF算法的思想就是將目標串S的第一個與模式串T的第一個字符串進行匹配&#xff0c;若相等&#xff0c;則繼續比較S的第二個字符和T的第二個字符&#xff1b;若不相等&#xff0c;則…

【計算機視覺|生成對抗】用深度卷積生成對抗網絡進行無監督表示學習(DCGAN)

本系列博文為深度學習/計算機視覺論文筆記&#xff0c;轉載請注明出處 標題&#xff1a;Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks 鏈接&#xff1a;[1511.06434] Unsupervised Representation Learning with Deep Conv…

騰訊云CVM服務器競價實例是什么?和按量計費有什么區別?

騰訊云服務器CVM計費模式分為包年包月、按量計費和競價實例&#xff0c;什么是競價實例&#xff1f;競價實例和按量付費相類似&#xff0c;優勢是價格更劃算&#xff0c;缺點是云服務器實例有被自動釋放風險&#xff0c;騰訊云服務器網來詳細說下什么是競價實例&#xff1f;以及…

NLP——操作步驟講義與實踐鏈接

數據集與語料 語料是NLP的生命之源&#xff0c;所有NLP問題都是從語料中學到數據分布的規律語料的分類&#xff1a;單語料&#xff0c;平行語料&#xff0c;復雜結構 語料的例子&#xff1a;Penn Treebank, Daily Dialog, WMT-1x翻譯數據集&#xff0c;中文閑聊數據集&#xf…

大數據:Numpy基礎應用詳解

Numpy基礎應用 Numpy 是一個開源的 Python 科學計算庫&#xff0c;用于快速處理任意維度的數組。Numpy 支持常見的數組和矩陣操作&#xff0c;對于同樣的數值計算任務&#xff0c;使用 NumPy 不僅代碼要簡潔的多&#xff0c;而且 NumPy 的性能遠遠優于原生 Python&#xff0c;…

mysql-5.5.62-win32安裝與使用

1.為啥是這個版本而不是當前最新的8.0&#xff1f; 因為我要用32位。目前mysql支持win32的版本最新只到5.7.33。 首先&#xff0c;到官網MySQL :: MySQL Downloads 然后選 選一個自己喜歡的版本就好。我這里是如標題版本。下載32位的zip。然后回來解壓。 完了創建系統環境變…

項目實施方案案例模板-拿來即用

《項目實施方案》實際案例模板&#xff0c;拿來即用&#xff0c;原件可獲取。 項目背景 項目目標 項目范圍 項目總體計劃 項目組織架構 5.1. 項目職責分工 項目風險點 6.1. 項目風險分析 6.2. 項目實施關鍵點 項目管理規范 7.1. 項目實施約束 7.2. 項目變更凍結 7…

(三) CUDA 硬件實現

一組帶有on-chip 共享內存的SIMD多處理器 GPU可以被看作一組多處理器, 每個多處理器使用單一指令&#xff0c;多數據架構(SIMD)【單指令流多數據流】 在任何給定的時鐘周期內&#xff0c;多處理器的每個處理器執行同一指令&#xff0c;但操作不同的數據 每個多處理器使用以下…

HASH索引,AVL樹,B樹,B+樹的區別?

1. 什么是 Hash 1.1 Hash 函數 Hash 本身其實是一個函數&#xff0c;又被稱為散列函數&#xff0c;它可以大幅提高我們對數據的檢索效率。因為它是散列的&#xff0c;所以在存儲數據的時候&#xff0c;它也是無序的。 Hash 算法是通過某種確定性的算法(例如MD5&#xff0c;S…

virtualBox橋接模式下openEuler鏡像修改IP地址、openEule修改IP地址、openEule設置IP地址

安裝好openEuler后,設置遠程登入前,必不可少的一步,主機與虛擬機之間的通信要解決,下面給出詳細步驟: 第一步:檢查虛擬機適配器模式:橋接模式 第二步:登入虛擬機修改IP cd /etc/sysconfig/network-scripts vim ifcfg-enpgs3 沒有vim的安裝或者用vi代替:sudo dnf …