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

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

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

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

1,繼承

2,子類繼承父類時(shí),不繼承父類的私有屬性

復(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]);
}

先寫個(gè)父類
復(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一個(gè)子類實(shí)例
復(fù)制代碼 代碼如下:

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

您可能感興趣的文章:

相關(guān)文章

  • 深入理解JavaScript系列(31):設(shè)計(jì)模式之代理模式詳解

    深入理解JavaScript系列(31):設(shè)計(jì)模式之代理模式詳解

    這篇文章主要介紹了深入理解JavaScript系列(31):設(shè)計(jì)模式之代理模式詳解,代理模式使得代理對象控制具體對象的引用,代理幾乎可以是任何對象:文件,資源,內(nèi)存中的對象,或者是一些難以復(fù)制的東西,需要的朋友可以參考下
    2015-03-03
  • 微信小程序基于Taro的分享圖片功能實(shí)踐詳解

    微信小程序基于Taro的分享圖片功能實(shí)踐詳解

    這篇文章主要介紹了微信小程序基于Taro的分享圖片功能實(shí)踐詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Javascript的動(dòng)態(tài)增加類的實(shí)現(xiàn)方法

    Javascript的動(dòng)態(tài)增加類的實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄狫avascript的動(dòng)態(tài)增加類的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-10-10
  • JavaScript 七大技巧(一)

    JavaScript 七大技巧(一)

    JavaScript是一門非常流行的編程語言,許多開發(fā)者都會(huì)把JavaScript選為入門語言,本文給大家分享javascript七大技巧(一),對javascript技巧相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • 詳解JavaScript中Arguments對象用途

    詳解JavaScript中Arguments對象用途

    本文主要介紹了詳解JavaScript中Arguments對象用途,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • echarts同一頁面中四個(gè)圖表切換的js數(shù)據(jù)交互方法示例

    echarts同一頁面中四個(gè)圖表切換的js數(shù)據(jù)交互方法示例

    這篇文章主要給大家介紹了關(guān)于echarts同一頁面中四個(gè)圖表切換的js數(shù)據(jù)交互的相關(guān)資料,文中給出了完整的示例代碼供大家參考學(xué)習(xí),對大家的學(xué)習(xí)或者工作具有一定的幫助,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • JS實(shí)現(xiàn)數(shù)組按升序及降序排列的方法

    JS實(shí)現(xiàn)數(shù)組按升序及降序排列的方法

    這篇文章主要介紹了JS實(shí)現(xiàn)數(shù)組按升序及降序排列的方法,涉及javascript針對數(shù)組的簡單排序操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-04-04
  • javascript簡單拖拽實(shí)現(xiàn)代碼(鼠標(biāo)事件 mousedown mousemove mouseup)

    javascript簡單拖拽實(shí)現(xiàn)代碼(鼠標(biāo)事件 mousedown mousemove mouseup)

    javascript簡單拖拽,簡單拖拽實(shí)現(xiàn)
    2012-05-05
  • Javascript實(shí)現(xiàn)數(shù)組中的元素上下移動(dòng)

    Javascript實(shí)現(xiàn)數(shù)組中的元素上下移動(dòng)

    這篇文章主要給大家介紹了Javascript實(shí)現(xiàn)數(shù)組中的元素上下移動(dòng)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-04-04
  • 深入詳解JS函數(shù)的柯里化

    深入詳解JS函數(shù)的柯里化

    JavaScript作為一種弱類型語言,它的隱式轉(zhuǎn)換是非常靈活有趣的。當(dāng)我們沒有深入了解隱式轉(zhuǎn)換的時(shí)候可能會(huì)對一些運(yùn)算的結(jié)果會(huì)感動(dòng)困惑,比如4 + true = 5。當(dāng)然,如果對隱式轉(zhuǎn)換了解足夠深刻,能夠提高對js的使用能力。這里分享一下,函數(shù)在隱式轉(zhuǎn)換中的一些規(guī)則
    2021-06-06

最新評論