茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    JavaScript中setter和getter方法介紹
    來(lái)源:易賢網(wǎng) 閱讀:1162 次 日期:2016-07-28 16:10:54
    溫馨提示:易賢網(wǎng)小編為您整理了“JavaScript中setter和getter方法介紹”,方便廣大網(wǎng)友查閱!

    javascript中的setter、getter是平時(shí)接觸比較少的方法,其本身也并不是標(biāo)準(zhǔn)方法,只在非ie瀏覽器里支持(ie內(nèi)核也許有其他方法可以做到呢?暫時(shí)不知其解),但是加以利用可以做許多事情,比如:

    1、對(duì)數(shù)據(jù)的訪問(wèn)限制:

    a.value是對(duì)value變量的getter方法調(diào)用,如果在getter方法實(shí)現(xiàn)中拋出異常,可以阻止對(duì)value變量的訪問(wèn)

    2、對(duì)dom變量進(jìn)行監(jiān)聽(tīng):

    window.name是一個(gè)跨域非常好用的dom屬性(大名鼎鼎,詳見(jiàn)百度),如果覆蓋window.name的setter實(shí)現(xiàn)則可以實(shí)現(xiàn)跨頁(yè)面的內(nèi)存異步通信

    3、自己發(fā)揮想象力,能做的事情好多滴

    以下皆轉(zhuǎn):

    首先,我們先來(lái)快速了解什么是Getters和Setters,以及它們?yōu)槭裁春苡杏?。然后,我們?lái)看看現(xiàn)在都有哪些平臺(tái)支持Gettets和Setters。

    Getters和Setters

    Getters和Setters使你可以快速獲取或設(shè)置一個(gè)對(duì)象的數(shù)據(jù)。一般來(lái)說(shuō),一個(gè)對(duì)象擁有兩個(gè)方法,分別用于獲取和設(shè)置某個(gè)值,比如:

    {

    getValue: function(){

    return this._value;

    },

    setValue: function(val){

    this._value = val;

    }

    }

    用這種方式寫(xiě)JavaScript的一個(gè)明顯的好處是:你可以用它來(lái)隱藏那些不想讓外界直接訪問(wèn)的屬性。最終的代碼看起來(lái)就像下面這樣(用閉包保存新創(chuàng)建的Filed對(duì)象的value):

    function Field(val){

    var value = val;

    this.getValue = function(){

    return value;

    };

    this.setValue = function(val){

    value = val;

    };

    }

    于是我們可以這樣使用:

    var field = new Field("test");

    field.value

    // => undefined

    field.setValue("test2")

    field.getValue()

    // => "test2"

    我們來(lái)模擬上例中的 “隱藏的value屬性”,我們的代碼就像這樣:

    function Field(val){

    var value = val;

    this.__defineGetter__("value", function(){

    return value;

    });

    this.__defineSetter__("value", function(val){

    value = val;

    });

    }

    但是呢,你不喜歡這樣寫(xiě),而傾向在對(duì)象的prototype中定義getters和setters(私有變量寫(xiě)在哪并不重要),我們可以用另一種語(yǔ)法。

    function Field(val){

    this.value = val;

    }

    Field.prototype = {

    get value(){

    return this._value;

    },

    set value(val){

    this._value = val;

    }

    };

    這種語(yǔ)法看起來(lái)很不可思議,但是使用過(guò)一段時(shí)間之后,接受它也很容易。

    接下來(lái)是另一個(gè)例子,它允許外界獲取一個(gè)username數(shù)組,但是卻不能獲取原始的,隱藏的user對(duì)象。

    function Site(users){

    this.__defineGetter__("users", function(){

    // JS 1.6 Array map()

    return users.map(function(user){

    return user.name;

    });

    };

    }

    記住以下幾點(diǎn):

    一個(gè)對(duì)象內(nèi),每個(gè)變量只能有一個(gè)getter或setter。(因此value可以有一個(gè)getter和一個(gè)setter,但是value絕沒(méi)有兩個(gè)getters)

    刪除getter或setter的唯一方法是:delete object[name]。delete可以刪除一些常見(jiàn)的屬性,getters和setters。

    如果使用__defineGetter__或__defineSetter__,它會(huì)重寫(xiě)之前定義的相同名稱的getter或setter,甚至是屬性(property)。

    平臺(tái)

    支持的瀏覽器有:

    Firefox

    Safari 3+

    Opera 9.5

    以上所述是小編給大家介紹的JavaScript中setter和getter方法介紹的全部敘述,希望對(duì)大家有所幫助

    更多信息請(qǐng)查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機(jī)網(wǎng)站地址:JavaScript中setter和getter方法介紹
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026上岸·考公考編培訓(xùn)報(bào)班

    • 報(bào)班類型
    • 姓名
    • 手機(jī)號(hào)
    • 驗(yàn)證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報(bào)警專用圖標(biāo)