5、JavaScript進階之私人屬性,javascript私人屬性

來源:互聯網
上載者:User

5、JavaScript進階之私人屬性,javascript私人屬性

學過java或者C++都知道,給對象聲明一個私人屬性使用private關鍵字就可以實現,但是在JavaScript中可不可以聲明一個私人屬性,答案肯定是可以的,你就相當於寫了一句廢話吧o(╯□╰)o。

在實現JavaScript的私人屬性之前,先來看看一道百度的面試題:

實現一個對象,對象中有個私人屬性,對象外部無法訪問,但是可以通過介面實現設定和訪問。


如果看過上一篇的《JavaScript進階之閉包》文章,那麼很快就可以解決上面的面試題。沒錯,JavaScript的私人屬性封裝就是通過閉包和局部變數實現的。

看下面的實際例子:

定義一個女孩的對象,有公開的“name”和私人的“secret”屬性,

  function Girl(name,boyfriend){
        this.name = name;
        var secret = boyfriend;//私人屬性
        //通過getSecret做介面,讀取私人屬性
        this.getSecret = function(){
            return secret;
        }
        this.setSecret = function(newSecret){
            secret = newSecret;
        }
    }

    var girl = new Girl('風暴女神','金剛狼');
    alert(girl.name+'喜歡'+girl.getSecret());//讀

    girl.setSecret('雷射男');//寫
    alert(girl.name+'喜歡'+girl.getSecret());//讀

這樣就實現了JavaScript對象的私人屬性封裝,只能通過提供的介面進行讀寫。




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.