js原型繼承四步曲及原型繼承圖

来源:http://www.cnblogs.com/sunduge/archive/2017/11/27/7906185.html
-Advertisement-
Play Games

一:js原型繼承四步曲 二:原型繼承圖 下圖輔助理解 練習提鞏固理解 ...


一:js原型繼承四步曲

 1     //js模擬類的創建以及繼承
 2     //動物(Animal),有頭這個屬性,eat方法
 3     //名字這個屬性
 4     //貓有名字屬性,繼承Animal,抓老鼠方法
 5     
 6     //第一步:創建父類
 7     function Animal(name){
 8         this.name = name;
 9     }
10     //給父類添加屬性方法
11     Animal.prototype.eat = function(){
12         console.log(this.name + " eating...");
13     
14     }
15     //第二步:創建子類    
16     function Cat(name){
17         Animal.call(this,name);
18 
19     }
20     //第三步:確定繼承的關係
21     Cat.prototype = Object.create(Animal.prototype);
22     
23     //第四步:改造構造器
24     //改變了某個構造器的原型之後,緊接著的代碼一定是改構造器
25     Cat.prototype.constructor = Cat;
26     
27     Cat.prototype.zhualaoshu = function(){
28         console.log(this.name + " 抓 老鼠");
29     }
30     
31     var mao = new Cat("貓");
32     mao.eat();
33     mao.zhualaoshu();

 

 

 

二:原型繼承圖


 

下圖輔助理解

 練習提鞏固理解

函數Foo的__proto的值等於Foo.prototype,對嗎? 不對
Object的prototype可以修改嗎?能與不能原因是什麼 不可以
頂級constructor是誰? Function()
頂級原型對象是誰? Object.prototype
對象的construtor成員是個屬性還是個方法? 方法
Function有沒有__proto__,為什麼?值等於Object.prototype嗎? 有,是Function.prototype;
所有的構造器的__proto__都等於其對應的prototype 不對
創建類形式的繼承的四部曲是什麼? 創建父類——>創建子類——>確定繼承關係——>改構造器
Function的constructor與prototype值可以修改嗎? 可以
Object.prototype === Object.__proto__嗎? 不對
Function.prototype === Function.__proto__嗎?
function F(){}; var f1 = new F();f1.__proto__ === Object.prototype嗎? 不對

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 之前面試時候經常被問及從輸入一個網址到頁面完全展示出來都發生了什麼,支支吾吾回答沒有底氣,仔細研究了一下,發現裡面學問還真不少。這些被瀏覽器封裝起來的東西,瞭解之後才對前端的一些流行做法恍然大悟。 ...
  • 在vue的實際開發中往往會遇到公用一個組件的問題,比如有一個菜單中的兩個按鈕,點擊每個按鈕調用的是同一個組件,其內容是根據路由的參數的不同來請求不同的內容。 第一步,首先新建一個vue+webpack+vuecli的demo,如下操作: 全局安裝vue-cli,vue-cil是vue的腳手架工具,安 ...
  • 原文地址: "前端快速開發模版" 之前一直在開發移動端的單頁面應用,而移動web對性能和效果要求是比較苛刻的,所以用的都是輕量級的框架體系。基本上是Zepto加自己開發的單頁面框架,再加上若幹簡單的庫。這樣前端要載入的文件很小,修改起來也非常方便,同時這樣的輕量級的體系使用gulp進行自動化管理也是 ...
  • 慕課網實戰 百度雲 web前端實戰: Node.js入門到企業Web開發中的應用 Web前端性能優化 讓你的頁面飛起來 前端跳槽面試必備技巧 前端JavaScript面試技巧全套 node.JS 線上伺服器部署 vue2.0 node.js MongoDB全棧打造商城 vue 2.0 高級實戰-開發 ...
  • 目錄: 1.<form> 2.<head> 3.<embed> 1.form 創建表單,使用<form>標簽。表單的作用是向伺服器傳輸數據,實現用戶交互。標簽中包含input、menus、textarea、fieldset、label等元素。 1.1.表單基本實現 點擊submit按鈕時提交表單,就 ...
  • /// /// 轉換成MP4格式 /// /// /// public static string ToMp4(string fromFilePath) { string ffmpeg = HttpContext.Current.Server.MapPath("/") ... ...
  • var arr = []; for(var i=0;i<150;i++){ // num為0-100的隨機數 var num = Math.round(Math.random()*100); var state = true; for(var j=0;j<arr.length;j++){ ... ...
  • 1.父頁面調用子頁面的元素 (a代表iframe的id或者class,b代表子頁面) 2.子頁面調用父頁面的元素 $(window.parent.document).contents().find("c") (c代表父頁面的任意元素id或者class) 3.iframe高度自適應 <iframe s ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...