亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JS類中定義原型方法的兩種實現(xiàn)的區(qū)別

 更新時間:2007年03月08日 00:00:00   作者:  
我們知道,給JavaScript類添加原形(prototype)方法是很簡單的。而且常用的有下面這兩種方法,可是這兩種方法在使用時有區(qū)別嗎?

    JScript Class:
 function JSClass()
 {

 }
    Extends prototype method:
 JSClass.prototype.MethodA = function()
 {

 };
    Or

 function = JSClass.prototype.MethodA()
 {

 };
其實這兩個原形定義方式可以簡化一下來討論,先把它們看作是兩個函數(shù),如下: 
  Foo1(); 

  function Foo1() 
  { 
      alert(’This is Foo1.’); 
  }
     和   Foo2(); 
  var Foo2 = function() 
  { 
      alert(’This is Foo2.’); 
  }

     運行第一個顯然是不會有任何錯誤的,可是運行第二個就有問題了,這時系統(tǒng)會說:Microsoft JScript runtime error: Object expected。這就是說函數(shù)定義(Foo1)在腳本解析器中有最高的初始化優(yōu)先級,這個很好理解。如果不優(yōu)先處理函數(shù),那么對于函數(shù)中的函數(shù)調(diào)用就沒有辦法處理了,假使我們先定fn1()再定義fn2(),卻從fn1中調(diào)fn2,那么就通不過解析了。為什么Foo2不能被初始化,F(xiàn)oo2的定義根本不是函數(shù)定義,它是一個標準的賦值語句,之所以能象標準函數(shù)一樣的使用Foo2(Foo2()),完全是因為它指向的是一個函數(shù)對象的實例而已。
再來看原形方法導(dǎo)入里的兩種方式,就很簡單了。并且不同的執(zhí)行優(yōu)先循序,也決了它們在使用中的不同,看如下示例: 
<script language="javascript">
function NormalClass() 

    this.m_Property1 = ’P1 in Normal Class.’; 
    this.m_Property2 = ’P2 in Normal Class.’; 

    this.toString = function() 
    { 
         return ’[class NormalClass]’; 
    }

    return new InnerClass();   

    function InnerClass() 
    { 
         this.m_Property1 = ’P1 in Inner Class.’;  
         this.m_Property2 = ’P2 in Inner Class.’;  

         this.toString = function() 
         { 
              return ’[class InnerClass]’; 
         }     
    }

    InnerClass.prototype.Method1 = function() 
    { 
         alert(this.m_Property1); 
    }; 

    function InnerClass.prototype.Method2() 
    { 
         alert(this.m_Property2); 
    };   
}
</script>

     執(zhí)行: 
var nc = new NormalClass(); 
nc.Method1(); 
nc.Method2();

     是什么效果?為什么? 

相關(guān)文章

  • 微信小程序picker多列選擇器(mode = multiSelector)

    微信小程序picker多列選擇器(mode = multiSelector)

    本文主要介紹了微信小程序picker多列選擇器,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • 簡單聊聊JavaScript的事件循環(huán)機制

    簡單聊聊JavaScript的事件循環(huán)機制

    前端開發(fā)的童鞋應(yīng)該都知道,JavaScript是一門單線程的腳本語言,這就意味著JavaScript 代碼在執(zhí)行的時候,只有一個主線程來執(zhí)行所有的任務(wù),同一個時間只能做同一件事情,這篇文章主要給大家介紹了關(guān)于JavaScript事件循環(huán)機制的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • 動態(tài)加載dtree.js樹treeview(示例代碼)

    動態(tài)加載dtree.js樹treeview(示例代碼)

    本篇文章主要是對動態(tài)加載dtree.js樹treeview的示例代碼進行了詳細的分析介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • javascript限制文本框只允許輸入數(shù)字(曾經(jīng)與現(xiàn)在的方法對比)

    javascript限制文本框只允許輸入數(shù)字(曾經(jīng)與現(xiàn)在的方法對比)

    很多時候需要用到限制文本框的數(shù)字輸入,試過許多方法,都不太理想,遂決定自己實現(xiàn)一個來玩玩,接下來介紹曾經(jīng)使用過的方法與自定義方法的對比,感興趣的朋友可以了解下啊
    2013-01-01
  • 小程序rich-text組件如何改變內(nèi)部img圖片樣式的方法

    小程序rich-text組件如何改變內(nèi)部img圖片樣式的方法

    這篇文章主要介紹了小程序rich-text組件如何改變內(nèi)部img圖片樣式的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • js模擬C#中List的簡單實例

    js模擬C#中List的簡單實例

    本篇文章主要是對js模擬C#中List的簡單實例進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-03-03
  • JavaScript?Promise執(zhí)行流程深刻理解

    JavaScript?Promise執(zhí)行流程深刻理解

    這篇文章主要介紹了JavaScript?Promise執(zhí)行流程深刻理解,他是一個構(gòu)造函數(shù),每個創(chuàng)建的promise都有各自狀態(tài)和值,且狀態(tài)初始值為pending,值為undefined
    2022-06-06
  • JavaScript數(shù)組去重由慢到快由繁到簡(優(yōu)化篇)

    JavaScript數(shù)組去重由慢到快由繁到簡(優(yōu)化篇)

    本文給大家介紹通過indexof去重,hash去重,排序后去重及set去重由慢到快有繁到簡的方法給大家介紹了js數(shù)組去重的方法,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-08-08
  • JavaScript中遍歷的十種方法總結(jié)

    JavaScript中遍歷的十種方法總結(jié)

    這篇文章主要給大家介紹了關(guān)于JavaScript中遍歷的十種方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • javascript原型繼承工作原理和實例詳解

    javascript原型繼承工作原理和實例詳解

    這篇文章主要為大家詳細介紹了javascript原型繼承,闡明什么是原型繼承,以及在JavaScript中究竟如何使用原型繼承,感興趣的小伙伴們可以參考一下
    2016-04-04

最新評論