国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

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

2019-11-20 21:31:47
字體:
供稿:網(wǎng)友

上一篇寫了個(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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 施秉县| 四川省| 乐清市| 丹凤县| 虞城县| 绥中县| 新宁县| 平阳县| 高要市| 鄂托克前旗| 清镇市| 阿城市| 稷山县| 政和县| 苍梧县| 南部县| 阿坝县| 吉木萨尔县| 吉首市| 兰坪| 班戈县| 勃利县| 定南县| 成安县| 马公市| 红安县| 凤阳县| 潼南县| 游戏| 清丰县| 陇川县| 闻喜县| 蓬溪县| 清水县| 志丹县| 永德县| 大渡口区| 南京市| 阳新县| 民乐县| 晋中市|