国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

javascript prototype原型詳解(比較基礎)

2019-11-19 18:15:12
字體:
來源:轉載
供稿:網友

javascript的prototype原型簡單介紹:
prototype原型是javascript中特別重要的概念,屬于必須要掌握,如果沒有良好的掌握的話,進一步用好或者學好js基本是不可能的實現(xiàn)的事情,并且此概念稍有難度,可能對于初次接觸的朋友來說有點困難,下面就通過代碼實例簡單介紹一下prototype原型的用法。

一.基本概念:

每一個函數(shù)都具有一個prototype屬性。
此屬性是一個指針,能夠指向一個對象,而此對象將會被由構造函數(shù)創(chuàng)建的對象實例所共享,也就是會繼承此對象。
總結:prototype所指向的對象是被構造函數(shù)所創(chuàng)建的對象實例所共同共享的。
創(chuàng)建的對象實例有一個內部屬性[[Prototype]],它是一個指針,指向構造函數(shù)原型(prototype)指向的對象。
先看一段代碼:

<script>function antzone(name,age){ this.webname=name; this.age=age;}antzone.prototype.getName=function(){ return this.webname;}var oantzone=new antzone("武林網",10);console.log(oantzone.getName());</script>

效果圖:

圖示如下:

上面圖片基本說明了prototype的作用。
二.代碼實例:
實例一:

function antzone(name,age){ this.webname=name; this.age=age;}var obj={ address:"江蘇省徐州"}var oantzone=new antzone("武林網",10);antzone.prototype=obj;console.log(oantzone.address);

看以上代碼,很多朋友可能以為輸出值是"江蘇省徐州",但是實際輸出內容是undefined,這是因為在使用構造函數(shù)創(chuàng)建對象oantzone的時候,oantzone對象內部屬性[[Prototype]]將會指向antzone()構造函數(shù)的原型prototype所指向的對象,而后來antzone.prototype=obj是重置構造函數(shù)的原型,而oantzone的內置屬性[[Prototype]]指向依然是原來的對象,自然oantzone.address是undefined。
實例二:

<script>function antzone(name,age){ this.webname=name; this.age=age;}var obj={ address:"江蘇省徐州"}antzone.prototype=obj;var oantzone=new antzone("武林網",10);console.log(oantzone.webname+oantzone.address);</script>

此代碼和上一段代碼的唯一不同,就是第八行和第九行進行了一下交換,這樣就可以輸出"江蘇省徐州",這個就不難理解了,因為對象實例是在重置原型以后創(chuàng)建的。
實例三:

function antzone(name,age){ this.webname=name; this.age=age;}var obj={ address:"江蘇省徐州"}antzone.prototype.add=obj;var oantzone=new antzone("武林網",10);console.log(oantzone.add.address);

以上代碼只是修改對象原型,而不是重置對象原型。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 五大连池市| 商丘市| 苍南县| 焦作市| 奉贤区| 曲周县| 普定县| 丁青县| 永春县| 长春市| 威宁| 诸暨市| 江安县| 上思县| 门源| 察雅县| 泊头市| 额济纳旗| 曲靖市| 武宁县| 黔南| 玉田县| 白山市| 邓州市| 玉树县| 桦南县| 武平县| 河北省| 固阳县| 嘉定区| 禹城市| 浮梁县| 保定市| 朝阳区| 富川| 宿松县| 施甸县| 若羌县| 信丰县| 桃源县| 攀枝花市|