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

如何在JavaScript中實現(xiàn)私有屬性的寫類方式(二)

 更新時間:2013年12月04日 09:06:16   作者:  
這篇文章主要介紹了如何在JavaScript中實現(xiàn)私有屬性的寫類方式。需要的朋友可以過來參考下,希望對大家有所幫助

上一篇寫了個工具函數(shù)$class,這篇再完善以下。實現(xiàn)以下功能

1,繼承

2,子類繼承父類時,不繼承父類的私有屬性

復制代碼 代碼如下:

/**
 * @param {String} className
 * @param {String/Function} superCls
 * @param {Function} classImp
 */
function $class(className, superCls, classImp){
    if(superCls === '') superCls = Object;
    function clazz(){
        if(typeof this.init == "function"){
            this.init.apply(this, arguments);
        }
    }
    var p = clazz.prototype = new superCls();
    var _super = superCls.prototype;
    window[className] = clazz;
    classImp.apply(p, [_super]);
}

先寫個父類
復制代碼 代碼如下:

/**
 * 父類 Person
 */
$class('Person','',function(){
    // 私有屬性age
    var age;
    this.init = function(n, a){
        // 公有屬性name
        this.name = n;
        // 私有屬性初始化
        age = a;
    };
    this.getName = function(){
        return this.name;
    };
    this.setName = function(name){
        this.name = name;
    }
    this.getAge = function(){
        return age;
    };
    this.setAge = function(a){
        age = a;
    };
});

寫子類,繼承于Person
復制代碼 代碼如下:

$class("Man",Person, function(supr){
    var school;
    this.init = function(n, a, s){
        supr.init.apply(this, [n,a]);
        school = s;
    }
    this.getSchool = function(){
        return school;
    };
    this.setSchool = function(s){
        school = s;
    };
});

new一個子類實例
復制代碼 代碼如下:

var m = new Man('tom', 25, 'pku');
console.log(m.name); // tom 繼承父類的共有屬性name可以直接使用點操作符獲取
console.log(m.age);  // undefined 父類的私有屬性age不能直接使用點操作符獲取
console.log(m.getAge()); // 25 可通過父類的共有方法getAge獲取私有屬性age
console.log(m.school); // undefined Man自己的私有屬性仍然不能通過點操作符獲取
console.log(m.getSchool()); // pku 通過getSchool()方法獲取私有屬性school

您可能感興趣的文章:

相關文章

  • js實現(xiàn)下拉框效果(select)

    js實現(xiàn)下拉框效果(select)

    本文主要介紹了js實現(xiàn)下拉框效果的方法實例。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • javascript KeyDown、KeyPress和KeyUp事件的區(qū)別與聯(lián)系

    javascript KeyDown、KeyPress和KeyUp事件的區(qū)別與聯(lián)系

    KeyDown、KeyPress和KeyUp事件的區(qū)別與聯(lián)系,以后就可以根據(jù)需求來選擇使用。
    2009-12-12
  • javascript基本常用排序算法解析

    javascript基本常用排序算法解析

    這篇文章主要為大家詳細介紹了javascript基本常用排序算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 在TypeScript項目中搭配Axios封裝后端接口調用

    在TypeScript項目中搭配Axios封裝后端接口調用

    這篇文章主要介紹了在TypeScript項目中搭配Axios封裝后端接口調用,本文記錄一下在?TypeScript?項目里封裝?axios?的過程,之前在開發(fā)?StarBlog-Admin?的時候已經做了一次封裝,不過那時是JavaScript跟TypeScript還是有些區(qū)別的,需要的朋友可以參考下
    2024-01-01
  • JavaScript中跨域調用Flash的方法

    JavaScript中跨域調用Flash的方法

    這篇文章主要介紹了JavaScript中跨域調用Flash的方法,只需要在Flash中加一句話即可,需要的朋友可以參考下
    2014-08-08
  • 詳解JavaScript如何避免內存泄漏

    詳解JavaScript如何避免內存泄漏

    這篇文章主要為大家詳細介紹了JavaScript內存泄漏的編程模式,并提供一些內存管理的改進方法,文中的示例代碼講解詳細,有需要的小伙伴可以參考一下
    2023-10-10
  • uni-app動態(tài)修改導航欄標題簡單步驟

    uni-app動態(tài)修改導航欄標題簡單步驟

    uniapp作為一款開源軟件,可以做到一端多用,不過也有局限,在開發(fā)中有時候需要動態(tài)的去修改標題,下面這篇文章主要給大家介紹了關于uni-app動態(tài)修改導航欄標題的相關資料,需要的朋友可以參考下
    2023-06-06
  • javascript實現(xiàn)隨時變化著的背景顏色

    javascript實現(xiàn)隨時變化著的背景顏色

    這篇文章主要介紹了javascript實現(xiàn)隨時變化著的背景顏色的方法,非常的簡單實用,有需要的小伙伴可以直接拿走。
    2015-04-04
  • 移動端界面的適配

    移動端界面的適配

    本文主要介紹了移動端頁面適配相關知識,用于解決在所有手機上看到字體的大小都一樣問題。下面跟著小編一起來看下吧
    2017-01-01
  • 微信小程序里引入SVG矢量圖標的方法

    微信小程序里引入SVG矢量圖標的方法

    這篇文章主要介紹了微信小程序里引入SVG矢量圖標的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09

最新評論

铜陵市| 彭泽县| 轮台县| 永胜县| 迁西县| 蓬溪县| 南华县| 大悟县| 长海县| 佛坪县| 铜梁县| 平定县| 修武县| 浪卡子县| 噶尔县| 商丘市| 商洛市| 义乌市| 吉首市| 江安县| 苗栗市| 板桥市| 本溪市| 错那县| 团风县| 澜沧| 瓮安县| 扶余县| 康平县| 苏尼特左旗| 黑龙江省| 孟津县| 青铜峡市| 隆尧县| 古浪县| 安龙县| 昭觉县| 湖口县| 浦北县| 牡丹江市| 涟水县|