最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript的面向對象(一)

 更新時間:2006年11月09日 00:00:00   作者:  
一。傳統(tǒng)的基于原型(Prototype)的做法
確切地說Javascrīpt的“類”在嚴格意義上來講并不能算真正的類,從其聲明的對象到類(估切這么說)有這樣一個關系:
Instance.__proto__=InstanceClass.prototype(ie不支持)
以上說明:實例的屬性(__proto__)等于類的prototpye,我們可以看出,實例的"__proto__"正好巧接在類的"prototype"上,通過原型鏈(prototype)來查找其方法并擴展,我們會發(fā)現其方法(Method)與其屬性(Property)都是Public(當然你也可以用Private,即不用this),而prototype其實就是一對象,用來記錄方法做為一個集合
假設我們聲明一個類A,可以如此
function A(){
this.className="ClassA";   //添加Public屬性,正確來說類名應該是Private的
}
//添加一方法
A.prototype.getClassName=function(){
return this.className;          //this指代A,而不是prototype
}
//聲明一對象
var AObj=new A();
alert(AObj.__proto__==A.prototype);     //ie下無效,ff下為true,說明上面的驗證是正確的
//我們來看看對象屬性
/*
由于用了this,className即為Public,即可以隨意修改或讀取
如果要保護起來,就要用到Private,那么可以去掉其this前綴,做為保護
讀的時候用一公開方法,即prototype下的方法:
A.prototype.getClassName=function(){
return className;                    //行不通,不存在,className是undefined
}
在這兒也只能約定一下,給className加上this,不要去直接去訪問。在這一點上,的確不如第二種方法,稍
后會說明
*/
關于"prototype"
由于Javascrīpt并沒有在系統(tǒng)內部并未使用過“繼承”(很大可能),所以class下的prototype得到的全是 
頂層Object,后期在繼承的時候,我們可以看到這樣的一個式子:
child.prototype=new parent();
繼承兩字帶引號的意思是說就算有繼承也并非真正意義上的繼承,也只是通過prototype巧接得到。
用實例擴展一個方法到類,這兒不得不提及__proto__這個屬性
復制代碼 代碼如下:
<scrīpt LANGUAGE="Javascrīpt"> 
<!-- 
function abc(){ 
 var ōwner=this; 
 owner.k="pp"; 
 owner.abc=function(){ 
 } 

abc.prototype.def=function(){ 

var s=new abc(); 
for(var t in abc.prototype){ 
 alert("prototype指向:"+t+"="+abc.prototype[t]); 

for(var t in s.__proto__){ 
 alert("__proto__指向:"+t+"="+s.__proto__[t]); 

//--> 
</scrīpt> 
在ff下我看可以看到實例名.__proto__=類.prototype,現在通過實例擴展一個方法,這兒在實際應用當中并不推薦這樣做,下例:
s.__proto__.hjk=function(){
  return "hjk";
}
alert(s.hjk());
for(var t in abc.prototype){
 alert("prototype指向:"+t+"="+abc.prototype[t]);
}
這下應該明白了吧。

相關文章

  • 獲取HTML DOM節(jié)點元素的方法的總結

    獲取HTML DOM節(jié)點元素的方法的總結

    在Web應用程序特別是Web2.0程序開發(fā)中,經常要獲取頁面中某個元素,然后更新該元素的樣式、內容等。如何獲取要更新的元素,是首先要解決的問題。
    2009-08-08
  • 原生js實現隨機點名

    原生js實現隨機點名

    這篇文章主要為大家詳細介紹了原生js實現隨機點名,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • 使用wxapp-img-loader自定義組件實現微信小程序圖片預加載功能

    使用wxapp-img-loader自定義組件實現微信小程序圖片預加載功能

    由于微信小程序沒有提供類似 Image 這樣的 JS 對象,要實現圖片的預加載要麻煩一些,wxapp-img-loader自定義組件可以在微信小程序中實現圖片預加載功能,需要的朋友可以參考下
    2018-10-10
  • JS的數組迭代方法

    JS的數組迭代方法

    這篇文章主要介紹了JS的數組迭代方法,實例分析了javascript使用數組迭代的相關技巧,代碼中備有較為詳細的注釋便于理解,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • 在JavaScript中生成不可修改屬性對象的方法

    在JavaScript中生成不可修改屬性對象的方法

    這篇文章主要介紹了在 JavaScript 中生成不可修改屬性對象的方法,包括相關函數及原理,并列舉了在狀態(tài)管理、數據緩存、函數式編程等場景中的實際應用,還通過代碼示例進行了詳細說明,需要的朋友可以參考下
    2024-12-12
  • 淺談js控制li標簽排序問題 js調用php函數的方法

    淺談js控制li標簽排序問題 js調用php函數的方法

    下面小編就為大家?guī)硪黄獪\談js控制li標簽排序問題 js調用php函數的方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • js+CSS簡單實現瀑布流布局

    js+CSS簡單實現瀑布流布局

    瀑布流布局,是一種視覺表現為參差不齊的多欄布局,常用于內容以圖片為主的頁面展示,本文將使用css和js兩種方式來實現瀑布流布局,需要的可以參考下
    2023-11-11
  • 第七章之菜單按鈕圖標組件

    第七章之菜單按鈕圖標組件

    Bootstrap,來自 Twitter,是目前最受歡迎的前端框架。這篇文章主要介紹BootStrap組件之菜單按鈕圖標組件的相關資料,需要的朋友可以參考下
    2016-04-04
  • webpack4 SplitChunks實現代碼分隔詳解

    webpack4 SplitChunks實現代碼分隔詳解

    這篇文章主要介紹了webpack4 SplitChunks實現代碼分隔詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • js實現input密碼框提示信息的方法(附html5實現方法)

    js實現input密碼框提示信息的方法(附html5實現方法)

    這篇文章主要介紹了js實現input密碼框提示信息的方法,涉及JavaScript頁面元素的獲取,屬性判斷及樣式設置等技巧,并附帶html5的相關實現方法,需要的朋友可以參考下
    2016-01-01

最新評論

临澧县| 嵊泗县| 汉寿县| 贵德县| 伽师县| 舞钢市| 义乌市| 霍林郭勒市| 定兴县| 平凉市| 威海市| 盐城市| 拜泉县| 洛川县| 渑池县| 灵山县| 图们市| 扶风县| 锦州市| 衡山县| 新宁县| 积石山| 呼玛县| 东安县| 开江县| 喀喇| 商水县| 琼结县| 南宫市| 镇沅| 比如县| 山东| 神木县| 贵南县| 上蔡县| 阿拉善右旗| 灌阳县| 睢宁县| 永德县| 抚州市| 赤峰市|