<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      深入理解javascript原型和閉包(3)——prototype原型

      既typeof之后的另一位老朋友!

      prototype也是我們的老朋友,即使不了解的人,也應(yīng)該都聽過它的大名。如果它還是您的新朋友,我估計(jì)您也是javascript的新朋友。

       

      在咱們的第一節(jié)(深入理解javascript原型和閉包(1)——一切都是對象)中說道,函數(shù)也是一種對象。他也是屬性的集合,你也可以對函數(shù)進(jìn)行自定義屬性。

      不用等咱們?nèi)ピ囼?yàn),javascript自己就先做了表率,人家就默認(rèn)的給函數(shù)一個(gè)屬性——prototype。對,每個(gè)函數(shù)都有一個(gè)屬性叫做prototype。

      這個(gè)prototype的屬性值是一個(gè)對象(屬性的集合,再次強(qiáng)調(diào)!),默認(rèn)的只有一個(gè)叫做constructor的屬性,指向這個(gè)函數(shù)本身。

      如上圖,SuperType是是一個(gè)函數(shù),右側(cè)的方框就是它的原型。

      原型既然作為對象,屬性的集合,不可能就只弄個(gè)constructor來玩玩,肯定可以自定義的增加許多屬性。例如這位Object大哥,人家的prototype里面,就有好幾個(gè)其他屬性。

      咦,有些方法怎么似曾相似?

      對!別著急,之后會讓你知道他們?yōu)楹嗡圃嘧R。

      接著往下說,你也可以在自己自定義的方法的prototype中新增自己的屬性

              function Fn() { }
              Fn.prototype.name = '王福朋';
              Fn.prototype.getYear = function () {
                  return 1988;
              };

      看到?jīng)]有,這樣就變成了

      沒問題!

      但是,這樣做有何用呢? —— 解決這個(gè)問題,咱們還是先說說jQuery吧。

      var $div = $('div');
      $div.attr('myName', '王福朋');

      以上代碼中,$('div')返回的是一個(gè)對象,對象——被函數(shù)創(chuàng)建的。假設(shè)創(chuàng)建這一對象的函數(shù)是 myjQuery。它其實(shí)是這樣實(shí)現(xiàn)的。

              myjQuery.prototype.attr = function () {
                  //……
              };
              $('div') = new myjQuery();

      不知道大家有沒有看明白。

      如果用咱們自己的代碼來演示,就是這樣

              function Fn() { }
              Fn.prototype.name = '王福朋';
              Fn.prototype.getYear = function () {
                  return 1988;
              };
      
              var fn = new Fn();
              console.log(fn.name);
              console.log(fn.getYear());

      即,F(xiàn)n是一個(gè)函數(shù),fn對象是從Fn函數(shù)new出來的,這樣fn對象就可以調(diào)用Fn.prototype中的屬性。

      因?yàn)槊總€(gè)對象都有一個(gè)隱藏的屬性——“__proto__”,這個(gè)屬性引用了創(chuàng)建這個(gè)對象的函數(shù)的prototype。即:fn.__proto__ === Fn.prototype

      這里的"__proto__"成為“隱式原型”,下回繼續(xù)分解。

       

      ---------------------------------------------------------------------------

      本文已更新到《深入理解javascript原型和閉包》的目錄,更多內(nèi)容可參見《深入理解javascript原型和閉包》。

      另外,歡迎關(guān)注我的微博

      學(xué)習(xí)作者教程:《前端JS高級面試》《前端JS基礎(chǔ)面試題》《React.js模擬大眾點(diǎn)評webapp》《zepto設(shè)計(jì)與源碼分析》《json2.js源碼解讀

      posted @ 2014-09-17 21:51  王福朋  閱讀(107357)  評論(52)    收藏  舉報(bào)
      主站蜘蛛池模板: 欧美精品一区二区三区中文字幕| 四川少妇被弄到高潮| 她也色tayese在线视频| 亚洲av天堂天天天堂色| 国产日韩一区二区天美麻豆 | 国产日产欧产美韩系列麻豆| 国内少妇人妻丰满av| 国产不卡一区二区在线视频| 午夜精品一区二区三区成人| 免费乱理伦片在线观看| 九九热在线精品视频99| 国产自拍一区二区三区在线| 亚洲国产精品一区二区视频| 日韩乱码人妻无码中文字幕视频 | 亚洲综合在线日韩av| xxxxbbbb欧美残疾人| 三级黄色片一区二区三区| 成全影院电视剧在线观看| 亚洲欧美综合人成在线| 乱色欧美激惰| 国产资源精品中文字幕| 精品国偷自产在线视频99| 亚洲国产精品日韩av专区| 亚洲AV日韩AV高清在线观看| 无码人妻aⅴ一区二区三区蜜桃| 亚洲综合伊人久久大杳蕉| 超碰自拍成人在线观看| 日本欧美一区二区三区在线播放 | 蜜桃视频一区二区三区四| 野花香视频在线观看免费高清版 | 上犹县| 国产成人一区二区三区在线| 999久久久免费精品播放| 东京热一精品无码av| 日韩精品av一区二区三区| 国产乱人伦偷精品视频下| 国产日韩一区二区在线| 国内外精品激情刺激在线| 国产曰批视频免费观看完| 辛集市| 九九热精彩视频在线免费|