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

首頁 > 開發 > JS > 正文

JScript重載的另類實現

2024-09-06 12:43:47
字體:
來源:轉載
供稿:網友
JScript并不是面向對象的語言,只是基于對象。它沒有重載這個概念,但通過一些技巧還是有辦法從某種意義上實現重載。 

首先定義一個基類TestA,該類重寫了Object繼承下來的toString方法。 

注:toString方法是用于序列化對象,比如說alert(a)相當于alert(a.toString());


引用:
function TestA(Name) 

  this.Name = Name; 
  this.toString = function ()
  { 
    return this.Name; 
  } 


接下來我們實現一個TestA類的派生類TestB:
引用:
function TestB() 

  TestA.apply(this, arguments); 


運行以下代碼可以看出TestB已經繼承下TestA的成員: 

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行] 

現在我們來給TestB添加一個自己的toString方法,但問題是如果定義了TestB的toString,那么TestA繼承下來的toString就被覆蓋了,我的做法是:在重寫之前先保存下TestA的toString為TestB的_TestA_toString,然后在TestB的toString中根據參數來判斷要調用_TestA_toString還是TestB自己的toString代碼


引用:
function TestB() 

  TestA.apply(this, arguments); 
  this._TestA_toString = this.toString; // 保存下TestA的toString 
  this.toString = function(isTestB) 
  { 
    if(isTestB) 
    { 
      return "TestB的Name是" + this.Name; 
    } 
    else 
    { 
      return this._TestA_toString(); // 這里調用TestA的toString,即_TestA_toString 
    } 
  } 


以上的toString不單單是TestB自己的toString,還根據參數情況調用了原來的toString,實現了重載。 

最終代碼是:


引用:
function TestA(Name) 

    this.Name = Name; 
    this.toString = function() 
    { 
        return this.Name; 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲一区二区三区视频 | 亚洲aⅴ免费在线观看 | www.com香蕉 | 国产午夜亚洲精品午夜鲁丝片 | 羞羞视频免费网站日本动漫 | 国产午夜精品一区二区三区不卡 | 最新av网址在线观看 | 黄色免费在线网站 | 精品国产一区二区在线 | 国产精品久久久久久久久久东京 | 久草最新在线 | 特一级黄色毛片 | 国产日韩大片 | 深夜视频在线观看 | 欧美一级爱爱 | 国产精品18久久久久久久 | 欧美va亚洲 | 国产精品啪一品二区三区粉嫩 | 美女视频黄视大全视频免费网址 | 99国产精品自拍 | 免费一级欧美大片视频 | 国产精品久久久久网站 | 欧美a久久| 国产精品视频2021 | 亚洲精品在线观看网站 | 精品中文字幕视频 | 青青操精品 | 免费一级特黄毛片视频 | 国产精品亚洲精品久久 | 国产精品99久久久久久久女警 | 久久国产精品久久久久久久久久 | 男男啪羞羞视频网站 | 欧美a∨亚洲欧美亚洲 | 国产一级小视频 | 热久久91 | 欧美黑人伦理 | 欧美性生活网站 | 又黄又爽免费无遮挡在线观看 | 91网站永久免费看 | 国产精品久久久久久久不卡 | 色婷婷久久久亚洲一区二区三区 |