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

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

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

之前討論過JavaScript中的寫類方式。但沒有討論私有的實(shí)現(xiàn)。這篇看下。

我們知道JS中私有屬性的實(shí)現(xiàn)本質(zhì)就是 var + closure。如下

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

function Person(n, a){
    // public
    this.name = n;
    // private
    var age = a;
    this.getName = function(){
        return this.name;
    }
    this.getAge = function(){
        return age;
    }
}

測試如下,age是私有的,使用點(diǎn)操作符無法獲取到,而只能使用getName方法。
復(fù)制代碼 代碼如下:

var p = new Person('jack',23);
console.log(p.age);  // undefined
console.log(p.getAge()); // 23

以上沒什么稀奇的,下面我們使用一個(gè)工具函數(shù)來實(shí)現(xiàn)。 
復(fù)制代碼 代碼如下:

/**
 * @param {String} className
 * @param {Function} classImp
 */
function $class(className, classImp){
    function clazz(){
        if(typeof this.init == "function"){
            this.init.apply(this, arguments);
        }
    }
    classImp.call(clazz.prototype);
    window[className] = clazz;
}

寫一個(gè)類
復(fù)制代碼 代碼如下:

$class('Person', function(){
    // 私有屬性都定義在這
    var age = '';
    this.init = function(n, a){
        // 共有屬性掛在this上,初始化
        this.name = n;
        // 私有屬性初始化
        age = a;
    };
    this.getName = function(){
        return this.name;
    };
    this.getAge = function(){
        return age;
    }
});

new一個(gè)實(shí)例對(duì)象
復(fù)制代碼 代碼如下:

var p = new Person('jack',23);
console.log(p.name); // jack 共有的可使用點(diǎn)操作符獲取
console.log(p.age); // undefined 私有的不能通過點(diǎn)操作符獲取
console.log(p.getAge()); // 23 私有的age只能通過共有的方法getAge獲取

相關(guān)文章

  • 微信上傳視頻文件提示(推薦)

    微信上傳視頻文件提示(推薦)

    晚上要下班了老板發(fā)來一個(gè)任務(wù):把一個(gè)300M左右的視頻壓縮到100M以內(nèi),以便在微信上發(fā)送。于是就是抽空搞了起來,下面小編把過程分享到腳本之家平臺(tái),需要的朋友參考下吧
    2018-11-11
  • 微信小程序自定義頂部導(dǎo)航組件

    微信小程序自定義頂部導(dǎo)航組件

    這篇文章主要為大家詳細(xì)介紹了微信小程序自定義頂部導(dǎo)航組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 微信小程序和公眾號(hào)實(shí)現(xiàn)簽到頁面

    微信小程序和公眾號(hào)實(shí)現(xiàn)簽到頁面

    這篇文章主要為大家詳細(xì)介紹了微信小程序和公眾號(hào)實(shí)現(xiàn)簽到頁面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 原生js實(shí)現(xiàn)下拉選項(xiàng)卡

    原生js實(shí)現(xiàn)下拉選項(xiàng)卡

    這篇文章主要為大家詳細(xì)介紹了原生js實(shí)現(xiàn)下拉選項(xiàng)卡,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • 微信頭像地址失效踩坑記附帶解決方案

    微信頭像地址失效踩坑記附帶解決方案

    這篇文章主要介紹了微信頭像地址失效踩坑記附帶解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • JavaScript實(shí)現(xiàn)echarts水球圖百分比展示大屏可視化

    JavaScript實(shí)現(xiàn)echarts水球圖百分比展示大屏可視化

    這篇文章主要為大家介紹了JavaScript實(shí)現(xiàn)echarts水球圖百分比展示大屏可視化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • js 動(dòng)態(tài)創(chuàng)建 html元素

    js 動(dòng)態(tài)創(chuàng)建 html元素

    最近在學(xué)習(xí)js 寫了個(gè)簡單的效果,菜鳥可以學(xué)習(xí)學(xué)習(xí),基本原理:使用隨即數(shù)設(shè)置top 和left的值,
    2009-07-07
  • 使用Curl命令查看請(qǐng)求響應(yīng)時(shí)間方法

    使用Curl命令查看請(qǐng)求響應(yīng)時(shí)間方法

    curl命令查看請(qǐng)求響應(yīng)時(shí)間的方法非常簡單,今天小編抽空給大家介紹下使用Curl命令查看請(qǐng)求響應(yīng)時(shí)間方法,感興趣的朋友一起看看吧
    2016-11-11
  • JavaScript實(shí)現(xiàn)節(jié)點(diǎn)的刪除與序號(hào)重建實(shí)例

    JavaScript實(shí)現(xiàn)節(jié)點(diǎn)的刪除與序號(hào)重建實(shí)例

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)節(jié)點(diǎn)的刪除與序號(hào)重建方法,涉及javascript針對(duì)頁面節(jié)點(diǎn)的刪除與遍歷技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-08-08
  • mpvue微信小程序多列選擇器用法之省份城市選擇的實(shí)現(xiàn)

    mpvue微信小程序多列選擇器用法之省份城市選擇的實(shí)現(xiàn)

    這篇文章主要給大家介紹了關(guān)于mpvue微信小程序多列選擇器用法之省份城市選擇實(shí)現(xiàn)的相關(guān)資料,文中通過示例代碼以及圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評(píng)論