欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS也玩OO繼承

 更新時間:2007年01月11日 00:00:00   作者:  
算了一下,還是來這里了 ^_^
無憂~~久違了…………貼一個原理的東東吧,

(stroll的跟貼)


當然,還可以通過以下幾種不用“外掛”的方法…… 不過要求使用 Script5.5 才可以使用
比如 call 方法 和 apply方法…… 以下是使用 call 的方法來實現(xiàn)的
apply也差不多,只不過后面調(diào)用的參數(shù)是數(shù)組,詳細可以自己參考MSScript5.6說明

Bencalie 還記得以前你跟我說call apply的使用方法么?這回這個答案算圓滿了吧?

(stroll的跟貼)


注意觀察所謂“繼承對象”的 this.Prototype 這個變量(一開始我沒注意看,以為是關(guān)鍵字……害我苦找資料)

this.Prototype = new JSObject(); // 注意:這可不是小寫的prototype
this.Prototype.Speak = function(s){.......}
在構(gòu)造對象后直接反饋 return this.Prototype 其實這個就是 JSPObject 對象,
并不是 JSHuman 對象,所以 var o = new JSHuman();
o 這個實例是無法訪問 JSHuman 的成員的

[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]

(bencalie的跟貼)


stroll,看了你的囘答,非常滿意。

你又把問題勾起來了,那麼這裏Base.call(this, v_sName)用成Base.apply(this),我怎麼將v_sName傳遞到Base.BaseName,我反倒對apply的使用有點不好理解了。

最終使用Base.apply(this, [v_sName])用數(shù)組傳遞成功

那麼這樣看call和apply僅僅是參數(shù)不同了?
(Roman的跟貼)

(bencalie的跟貼)
擴展了一下,這樣子是不是有簡單的OOP重載功能?

(stroll的跟貼)


To bencalie ,是的,的確僅僅如此

不過不要認為apply這樣是麻煩,其實如果兩個對象的構(gòu)造參數(shù)順序一樣的話,可以這么來
Base.apply(this, arguments) 很方便吧?

附上:(因為30秒才一貼~~)
不過你那里添加一個 new Base() 是認為無法繼承的做法,其實是可以繼承方法的,O.BaseMethod() 的調(diào)用就是了 ^_^
to:bencalie(Roman的跟貼)


基對象的方法被overwrite了.為什么stroll說 var o = new JSHuman(); o 這個實例是無法訪問 JSHuman 的成員的
請看如下代碼:

stroll,方法的確繼承過來了,但我在Son對象的搆造函數(shù)裏重寫了BaseMethod()

事實上O.BaseMethod()這樣調(diào)用已經(jīng)不是Base對象的BaseMethod()方法了,而是Son對象的BaseMethod()方法,所以我把Base的一個實例儅作Son的成員base,使用

Son實例.base.BaseMethod()

的格式來引用Base的BaseMethod()方法


另外,我喜懽這句:Base.apply(this, arguments)
呵呵……收到~~(stroll的跟貼)


雖然說JS是沒有指針了…… 不知道同時構(gòu)造一個“父對象”,一個“子對象” 再有一個函數(shù)傳遞一個對象參數(shù),這個參數(shù)使用父子共有的方法,是不是能夠分別調(diào)用相應(yīng)的方法呢? 還未了解JS 的 this 是不是相當于 虛擬地址的指針呢?
所以替換了方法才能解決上面的疑惑(雖然這個迷惑是菜了點,不過符合邏輯:)

還有……如果里面成員有構(gòu)造對象的函式,是不是也會像c++一樣先構(gòu)造對象,然后再執(zhí)行其他函式呢? 這個可能或則肯定是按照從上到下了~~~~語言規(guī)定?沒試過

有沒有試過多個父對象的繼承呢?不過也不難想到這個一步……(樹狀繼承)

這些就是偶的疑問啦,呵呵……

相關(guān)文章

  • JS創(chuàng)建或填充任意長度數(shù)組的小技巧匯總

    JS創(chuàng)建或填充任意長度數(shù)組的小技巧匯總

    在JavaScript 中,我們往往會遇到需要使用某些默認值來填充數(shù)組的情況,那么都有哪些方式可以完成這樣的任務(wù)呢?這篇文章主要給大家介紹了關(guān)于JS創(chuàng)建或填充任意長度數(shù)組的小技巧,需要的朋友可以參考下
    2021-10-10
  • javascript繼承機制實例詳解

    javascript繼承機制實例詳解

    這篇文章主要介紹了javascript繼承機制,以實例形式詳細分析了javascript繼承的原理與基于原型鏈的繼承實現(xiàn)方法,具有不錯的參考借鑒價值,需要的朋友可以參考下
    2014-11-11
  • javascript四舍五入函數(shù)代碼分享(保留后幾位)

    javascript四舍五入函數(shù)代碼分享(保留后幾位)

    這篇文章主要介紹了javascript四舍五入函數(shù)分享,大家參考使用吧
    2013-12-12
  • JS設(shè)置時間無效問題的解決辦法

    JS設(shè)置時間無效問題的解決辦法

    在發(fā)送短信息驗證碼的時候要用到j(luò)s設(shè)置時間倒序問題,有時候會導(dǎo)致js失效問題,怎么辦呢?今天小編給大家分享JS設(shè)置時間無效問題的解決辦法,需要的朋友參考下吧
    2017-02-02
  • js中的this的指向問題詳解

    js中的this的指向問題詳解

    這篇文章主要介紹了js中的this的指向問題以及相關(guān)知識點內(nèi)容,需要的朋友們參考學(xué)習(xí)下。
    2019-08-08
  • 理解Javascript閉包

    理解Javascript閉包

    閉包是ECMAScript一個很重要的特征,但是卻很難用合適的定義來描述它。雖然閉包很難清晰地描述,但是,卻很容易創(chuàng)建,或者說,不小心創(chuàng)建。然而,閉包的存在其實是有一定的潛在問題的。為了避免“不小心”地創(chuàng)建閉包,以及更好地利用閉包的優(yōu)點,有必要理解閉包的機制
    2013-11-11
  • JavaScript數(shù)組filter方法

    JavaScript數(shù)組filter方法

    filter()創(chuàng)建一個新的數(shù)組,新數(shù)組中的元素是通過檢查指定數(shù)組中符合條件的所有元素,這篇文章主要介紹了JavaScript數(shù)組filter方法,需要的朋友可以參考下
    2022-12-12
  • 詳解如何利用JavaScript繪制堆疊柱狀圖

    詳解如何利用JavaScript繪制堆疊柱狀圖

    堆疊柱狀圖將每個柱子進行分割以顯示相同類型下各個數(shù)據(jù)的大小情況??梢孕蜗蟮谜故疽粋€大分類包含的每個小分類的數(shù)據(jù),以及各個小分類的占比,顯示的是單個項目與整體之間的關(guān)系。本文將利用JavaScript實現(xiàn)堆疊柱狀圖的繪制,需要的可以參考一下
    2022-03-03
  • JavaScript關(guān)鍵字this的使用方法詳解

    JavaScript關(guān)鍵字this的使用方法詳解

    與其他語言相比,函數(shù)的 this 關(guān)鍵字在 JavaScript 中的表現(xiàn)略有不同,此外,在嚴格模式和非嚴格模式之間也會有一些差別,本文就給大家講解一下JavaScript關(guān)鍵字中的this,需要的朋友可以參考下
    2023-08-08
  • JavaScript缺少insertAfter解決方案

    JavaScript缺少insertAfter解決方案

    這篇文章主要介紹了JavaScript缺少insertAfter解決方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07

最新評論