麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > WEB開發 > 正文

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

2024-04-27 15:14:27
字體:
來源:轉載
供稿:網友

原文地址:http://www.cnblogs.com/wangfupeng1988/p/3978131.html

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

PRototype也是我們的老朋友,即使不了解的人,也應該都聽過它的大名。如果它還是您的新朋友,我估計您也是javascript的新朋友。

 

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

不用等咱們去試驗,javascript自己就先做了表率,人家就默認的給函數一個屬性——prototype。對,每個函數都有一個屬性叫做prototype。

這個prototype的屬性值是一個對象(屬性的集合,再次強調!),默認的只有一個叫做constructor的屬性,指向這個函數本身。

如上圖,SuperType是是一個函數,右側的方框就是它的原型。

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

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

對!別著急,之后會讓你知道他們為何似曾相識。

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

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

看到沒有,這樣就變成了

沒問題!

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

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

以上代碼中,$('div')返回的是一個對象,對象——被函數創建的。假設創建這一對象的函數是 myjQuery。它其實是這樣實現的。

        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());復制代碼

即,Fn是一個函數,fn對象是從Fn函數new出來的,這樣fn對象就可以調用Fn.prototype中的屬性。

因為每個對象都有一個隱藏的屬性——“__proto__”,這個屬性引用了創建這個對象的函數的prototype。即:fn.__proto__ === Fn.prototype

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 在线a亚洲视频播放在线观看 | 中文字幕亚洲情99在线 | 红桃一区 | 日韩字幕在线 | 国产精品久久久久久久av三级 | 黄色大片网 | 成片免费观看视频大全 | 日韩精品久久久久久久九岛 | xnxx 日本19| 羞羞电影在线观看 | 亚洲乱码精品久久久久 | 免费观看欧美一级片 | 久久精品国产一区二区电影 | 一级在线视频 | 午夜视频播放 | 欧美亚洲啪啪 | 亚洲视频在线一区二区 | 日韩激情在线视频 | 禁漫天堂久久久久久久久久 | 久久亚洲精选 | vidz 98hd| 成人福利在线视频 | 色播视频网站 | 久久久久亚洲精品国产 | 欧美日韩在线免费观看 | 羞羞视频入口 | 蜜桃精品视频在线观看 | 久久国产精品99久久人人澡 | 欧美成人午夜一区二区三区 | 成人mm视频在线观看 | 欧美日韩在线免费观看 | 国产a一级片| 国产chinesehd精品91 | 久久精品99国产国产精 | 亚洲第一成人在线观看 | 日本在线观看一区二区 | 久草在线视频首页 | 午夜精品福利视频 | 精品国产一区二区三区成人影院 | h视频在线免费观看 | 日韩精品中文字幕一区二区三区 |