国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

javascript學習小結之prototype_javascript技巧

來源:懂視網 責編:小采 時間:2020-11-27 21:46:42
文檔

javascript學習小結之prototype_javascript技巧

javascript學習小結之prototype_javascript技巧:JS中的prototype是JS中比較難理解的一個部分本文基于下面幾個知識點:1 原型法設計模式在.Net中可以使用clone()來實現原型法原型法的主要思想是,現在有1個類A,我想要創建一個類B,這個類是以A為原型的,并且能進行擴展。我們稱B的原型為A。2 javascr
推薦度:
導讀javascript學習小結之prototype_javascript技巧:JS中的prototype是JS中比較難理解的一個部分本文基于下面幾個知識點:1 原型法設計模式在.Net中可以使用clone()來實現原型法原型法的主要思想是,現在有1個類A,我想要創建一個類B,這個類是以A為原型的,并且能進行擴展。我們稱B的原型為A。2 javascr

JS中的prototype是JS中比較難理解的一個部分

本文基于下面幾個知識點:

1 原型法設計模式
在.Net中可以使用clone()來實現原型法

原型法的主要思想是,現在有1個類A,我想要創建一個類B,這個類是以A為原型的,并且能進行擴展。我們稱B的原型為A。

2 javascript的方法可以分為三類:
a -> 類方法

b -> 對象方法

c -> 原型方法

例子:

3. obj1.func.call(obj)方法
意思是將obj看成obj1,調用func方法,本來調用的是obj1的func方法,但是,傳入obj后,改變了上下文對象,就通過obj對象來調用ojb1的方法了

好了,下面一個一個問題解決:

prototype是什么含義?

javascript中的每個對象都有prototype屬性,Javascript中對象的prototype屬性的解釋是:返回對象類型原型的引用。

A.prototype = new B();

理解prototype不應把它和繼承混淆。A的prototype為B的一個實例,可以理解A將B中的方法和屬性全部克隆了一遍。A能使用B的方法和屬性。這里強調的是克隆而不是繼承??梢猿霈F這種情況:A的prototype是B的實例,同時B的prototype也是A的實例。

先看一個實驗的例子:

我們首先定義了baseClass類,然后我們要定義extentClass,但是我們打算以baseClass的一個實例為原型,來克隆的extendClass也同時包含showMsg這個對象方法。

extendClass.prototype = new baseClass()就可以閱讀為:extendClass是以baseClass的一個實例為原型克隆創建的。

那么就會有一個問題,如果extendClass中本身包含有一個與baseClass的方法同名的方法會怎么樣?

下面是擴展實驗2:

實驗證明:函數運行時會先去本體的函數中去找,如果找到則運行,找不到則去prototype中尋找函數。或者可以理解為prototype不會克隆同名函數。

那么又會有一個新的問題:

如果我想使用extendClass的一個實例instance調用baseClass的對象方法showMsg怎么辦?

答案是可以使用call:

這里的baseinstance.showMsg.call(instance);閱讀為“將instance當做baseinstance來調用,調用它的對象方法showMsg”

好了,這里可能有人會問,為什么不用baseClass.showMsg.call(instance);

這就是對象方法和類方法的區別,我們想調用的是baseClass的對象方法

最后,下面這個代碼如果理解清晰,那么這篇文章說的就已經理解了:

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

javascript學習小結之prototype_javascript技巧

javascript學習小結之prototype_javascript技巧:JS中的prototype是JS中比較難理解的一個部分本文基于下面幾個知識點:1 原型法設計模式在.Net中可以使用clone()來實現原型法原型法的主要思想是,現在有1個類A,我想要創建一個類B,這個類是以A為原型的,并且能進行擴展。我們稱B的原型為A。2 javascr
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 国产精品成人久久久久久久 | 91一区二区三区四区五区 | 欧美日韩亚洲综合另类ac | aa级毛片| 亚洲欧美色视频 | 欧美精品华人在线 | 亲子交尾五十路 | 欧美日韩国产一区二区三区不卡 | 欧美一区二区三区视频在线观看 | 久热精品视频 | 亚洲国产成人久久一区久久 | xx中文字幕乱偷avxx | 精品久久亚洲一级α | 成人a毛片久久免费播放 | 欧美日韩国产码高清综合人成 | 欧美成人精品第一区二区三区 | 日韩视频高清 | 在线观看欧美国产 | 性刺激欧美三级在线现看中文 | 亚洲精品视频在线观看免费 | 欧美国产日韩在线 | 亚洲精品98久久久久久中文字幕 | 成人免费久久精品国产片久久影院 | 永久免费毛片 | 精品国产欧美一区二区五十路 | 亚洲综合欧美综合 | 日韩亚洲第一页 | 国产精选在线观看 | 日韩欧美综合在线 | 亚洲第一区视频 | 日韩国产免费一区二区三区 | 欧美日韩国产色 | 美女视频黄全免费的 | 一区二区三区中文字幕 | 97r久久精品国产99国产精 | 国产精品亚洲综合一区 | 一级毛片免费观看 | 日本一二三区高清 | 91成人爽a毛片一区二区 | 国产高清在线精品一区二区三区 | 国产精品香蕉一区二区三区 |