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

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

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

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

1,繼承

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

復(fù)制代碼 代碼如下:

/**
 * @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]);
}

先寫個父類
復(fù)制代碼 代碼如下:

/**
 * 父類 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
復(fù)制代碼 代碼如下:

$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一個子類實例
復(fù)制代碼 代碼如下:

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

您可能感興趣的文章:

相關(guān)文章

  • 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基本常用排序算法解析

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

    在TypeScript項目中搭配Axios封裝后端接口調(diào)用

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

    JavaScript中跨域調(diào)用Flash的方法

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

    詳解JavaScript如何避免內(nèi)存泄漏

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

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

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

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

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

    移動端界面的適配

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

    微信小程序里引入SVG矢量圖標(biāo)的方法

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

最新評論

册亨县| 瑞丽市| 岫岩| 通榆县| 中超| 泰安市| 兴海县| 博爱县| 永善县| 昌黎县| 南部县| 郎溪县| 滕州市| 壤塘县| 金塔县| 景泰县| 兰溪市| 咸宁市| 民县| 油尖旺区| 手机| 沿河| 渭南市| 台中县| 德格县| 上栗县| 离岛区| 益阳市| 昌宁县| 黑水县| 乌拉特中旗| 遂溪县| 迭部县| 黄梅县| 六盘水市| 依兰县| 县级市| 尤溪县| 彰化县| 汤阴县| 桓台县|