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

JavaScript中setter和getter方法介紹

 更新時(shí)間:2016年07月11日 10:01:54   投稿:mrr  
這篇文章主要介紹了JavaScript中setter和getter方法介紹的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下

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

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

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

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

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

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

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

Getters和Setters

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

{
getValue: function(){
return this._value;
},
setValue: function(val){
this._value = val;
}
}

用這種方式寫JavaScript的一個(gè)明顯的好處是:你可以用它來隱藏那些不想讓外界直接訪問的屬性。最終的代碼看起來就像下面這樣(用閉包保存新創(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" 

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

function Field(val){
var value = val;
this.__defineGetter__("value", function(){
return value;
});
this.__defineSetter__("value", function(val){
value = val;
});
}

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

function Field(val){
this.value = val;
}
Field.prototype = {
get value(){
return this._value;
},
set value(val){
this._value = val;
}
};

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

接下來是另一個(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絕沒有兩個(gè)getters)
刪除getter或setter的唯一方法是:delete object[name]。delete可以刪除一些常見的屬性,getters和setters。
如果使用__defineGetter__或__defineSetter__,它會(huì)重寫之前定義的相同名稱的getter或setter,甚至是屬性(property)。

平臺(tái)

支持的瀏覽器有:

Firefox
Safari 3+
Opera 9.5

以上所述是小編給大家介紹的JavaScript中setter和getter方法介紹的全部敘述,希望對(duì)大家有所幫助,如果大家想了解更多內(nèi)容,敬請(qǐng)關(guān)注腳本之家。

相關(guān)文章

  • 經(jīng)常用到的javascript驗(yàn)證函數(shù)收集

    經(jīng)常用到的javascript驗(yàn)證函數(shù)收集

    經(jīng)常用到的javascript驗(yàn)證函數(shù)收集...
    2007-11-11
  • javascript實(shí)現(xiàn)fetch請(qǐng)求返回的統(tǒng)一攔截

    javascript實(shí)現(xiàn)fetch請(qǐng)求返回的統(tǒng)一攔截

    這篇文章主要介紹了javascript實(shí)現(xiàn)fetch請(qǐng)求返回的統(tǒng)一攔截,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • JavaScript實(shí)現(xiàn)點(diǎn)擊文本自動(dòng)定位到下拉框選中操作

    JavaScript實(shí)現(xiàn)點(diǎn)擊文本自動(dòng)定位到下拉框選中操作

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)點(diǎn)擊文本自動(dòng)定位到下拉框選中操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-06-06
  • JavaScript判斷奇偶數(shù)的2種方法代碼舉例

    JavaScript判斷奇偶數(shù)的2種方法代碼舉例

    這篇文章主要給大家介紹了關(guān)于JavaScript判斷奇偶數(shù)的2種方法,奇數(shù)和偶數(shù)的判斷是數(shù)學(xué)運(yùn)算中經(jīng)常碰到的問題,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • weakMap為什么是弱引用原理

    weakMap為什么是弱引用原理

    這篇文章主要為大家介紹了weakMap為什么是弱引用原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 利用uniapp+vue3+js適配微信隱私協(xié)議開發(fā)指南

    利用uniapp+vue3+js適配微信隱私協(xié)議開發(fā)指南

    這篇文章主要給大家介紹了關(guān)于利用uniapp+vue3+js適配微信隱私協(xié)議開發(fā)指南的相關(guān)資料,適配最新微信小程序隱私協(xié)議開發(fā)指南,兼容uniapp版本,需要的朋友可以參考下
    2023-12-12
  • Uniapp自定義導(dǎo)航欄并自適應(yīng)機(jī)型的實(shí)現(xiàn)方法

    Uniapp自定義導(dǎo)航欄并自適應(yīng)機(jī)型的實(shí)現(xiàn)方法

    Uniapp 是一款跨平臺(tái)開發(fā)框架,可以同時(shí)開發(fā)出可以在多個(gè)平臺(tái)上運(yùn)行的應(yīng)用,在開發(fā)過程中,我們常常需要自定義導(dǎo)航欄來滿足 UI 設(shè)計(jì)的需求,本文將介紹如何在 Uniapp 中自定義導(dǎo)航欄并自適應(yīng)不同機(jī)型的屏幕大小,需要的朋友可以參考下
    2023-09-09
  • 基于Javascript實(shí)現(xiàn)彈出頁(yè)面效果

    基于Javascript實(shí)現(xiàn)彈出頁(yè)面效果

    彈出層效果是一個(gè)很實(shí)用的功能,很多網(wǎng)站都采用了這種方式實(shí)現(xiàn)登錄和注冊(cè),下面小編通過本文給大家分享具體實(shí)現(xiàn)代碼,對(duì)js彈出頁(yè)面效果相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • 如何選擇適合你的JavaScript框架

    如何選擇適合你的JavaScript框架

    這篇文章主要介紹了如何選擇適合你的JavaScript框架,如何選擇一個(gè)高效的JS框架經(jīng)驗(yàn)之談。
    2017-11-11
  • sencha ext js 6 快速入門(必看)

    sencha ext js 6 快速入門(必看)

    下面小編就為大家?guī)硪黄猻encha ext js 6 快速入門(必看)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06

最新評(píng)論