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

JavaScript的setter與getter方法

 更新時間:2017年11月29日 08:39:35   作者:hawk_zz  
這篇文章主要為大家詳細(xì)介紹了JavaScript的setter與getter方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

以前在寫項(xiàng)目過程一直都沒有使用過Javascript的setter與getter方法,所以對其是一種要懂不懂的概念;今天看書看到這個知識點(diǎn),還是模模糊糊的,于是就打算研究研究;

Javascript對象的屬性是由名字,值和一組特性構(gòu)成的。那么首先,來了解一下對象的兩種屬性:

數(shù)據(jù)屬性,我們經(jīng)常使用,應(yīng)該很熟悉
訪問器屬性,也稱存取器屬性

何為存取器屬性?就是一組獲取和設(shè)置值的函數(shù)。在ECMAScript5中,屬性值可以用一個或兩個方法設(shè)置,這兩個方法就是getter和setter;因此getter和setter定義的屬性被稱為存取器屬性。

var o = {
  get val(){
    /*函數(shù)體*/
    return ;
  },
  set val(n){
    /*函數(shù)體*/
  }
}

上面的就是一個存取器屬性定義的最簡單的方法,可以看出getter和setter方法其實(shí)就是取代function的一個函數(shù)。

var o = {
  a:3,
  get val(){
    return Math.pow(this.a,2);
  }
}

console.log(o.val);//9
o.val = 100;
console.log(o.val);//9

getter方法是無參數(shù),并且有返回值的;當(dāng)單獨(dú)設(shè)置getter方法時,只能獲取屬性值,無法更改其定義的屬性值的,保證了數(shù)據(jù)的安全性;

var o = {
  a:3,
  set val(n){
    this.a = n;
  }
}

console.log(o.val);//undefined

setter方法是有參數(shù),沒有返回值的;當(dāng)單獨(dú)設(shè)置setter方式時,是無法讀取屬性值的;

var o ={
  a:3,
  get val(){
    return Math.pow(this.a,n);
  },
  set val(n){
    this.a = Math.max(this.a,n);
  }
}

console.log(o.a);//3
console.log(o.val);//9
o.val = 10;
console.log(o.a);//10
console.log(o.val);//100

通過上面的代碼可以看出,其中this是指其對象(即代碼中的“o”);

var o ={
   a:3,
  get val(){
    return Math.pow(this.a,n);
  },
  set val(n){
    this.a = Math.max(this.a,n);
  }
}

o.val = 10;
var foo = Object.create(o);
console.log(foo.val);//10
foo.val = 9;
console.log(foo.val);//10

另外,存取器屬性也是可以被繼承的;

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用json對象轉(zhuǎn)化為key,value的對象數(shù)組

    使用json對象轉(zhuǎn)化為key,value的對象數(shù)組

    這篇文章主要介紹了使用json對象轉(zhuǎn)化為key,value的對象數(shù)組方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 前端如何控制并發(fā)請求舉例詳解

    前端如何控制并發(fā)請求舉例詳解

    在項(xiàng)目中我們會遇到一次請求多個接口,當(dāng)所有請求結(jié)束后進(jìn)行操作,也會遇到多個請求(大量)同時進(jìn)行請求資源,這篇文章主要給大家介紹了關(guān)于前端如何控制并發(fā)請求舉例的相關(guān)資料,需要的朋友可以參考下
    2024-09-09
  • 一文搞懂如何避免JavaScript內(nèi)存泄漏

    一文搞懂如何避免JavaScript內(nèi)存泄漏

    SPA的興起,促使我們更加關(guān)注與內(nèi)存相關(guān)的JavaScript編碼實(shí)踐。如果應(yīng)用使用的內(nèi)存越來越多,就會嚴(yán)重影響性能,甚至導(dǎo)致瀏覽器的崩潰。下面就來看看JavaScript中常見的內(nèi)存泄漏以及如何避免內(nèi)存泄漏
    2022-05-05
  • JS如何設(shè)置iOS中微信瀏覽器的title

    JS如何設(shè)置iOS中微信瀏覽器的title

    本文給大家分享js設(shè)置ios中微信瀏覽器中的title的解決方法,實(shí)現(xiàn)原理比較簡單,對js微信瀏覽器title相關(guān)知識感興趣的朋友一起通過本文學(xué)習(xí)吧
    2016-11-11
  • 微信小程序?qū)崿F(xiàn)禁止分享代碼實(shí)例

    微信小程序?qū)崿F(xiàn)禁止分享代碼實(shí)例

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)禁止分享代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • 讓alert不出現(xiàn)彈窗的兩種方法

    讓alert不出現(xiàn)彈窗的兩種方法

    這篇文章主要介紹了讓alert不出現(xiàn)彈窗的兩種方法,需要的朋友可以參考下
    2014-05-05
  • 你知道該如何捕獲js報(bào)錯前的用戶行為嗎

    你知道該如何捕獲js報(bào)錯前的用戶行為嗎

    這篇文章主要給大家介紹了該如何捕獲js報(bào)錯前的用戶行為的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-06-06
  • 簡易的投票系統(tǒng)以及js刷票思路和方法

    簡易的投票系統(tǒng)以及js刷票思路和方法

    這篇文章主要介紹了簡易的投票系統(tǒng)以及js刷票思路和方法,文章十分的詳盡,思路也很清晰,是篇非常不錯的文章,這里推薦給大家,有需要的小伙伴可以參考下。
    2015-04-04
  • Bootstrap每天必學(xué)之縮略圖與警示窗

    Bootstrap每天必學(xué)之縮略圖與警示窗

    Bootstrap每天必學(xué)之縮略圖與警示窗,對Bootstrap縮略圖與警示窗小編也了解的很少,希望通過這篇文章和大家更多的去學(xué)習(xí)Bootstrap縮略圖與警示窗,從中得到收獲。
    2015-11-11
  • JS中實(shí)現(xiàn)淺拷貝和深拷貝的代碼詳解

    JS中實(shí)現(xiàn)淺拷貝和深拷貝的代碼詳解

    JavaScript的變量中包含兩種類型的值:基本類型值 和 引用類型值,這篇文章主要介紹了JS中實(shí)現(xiàn)淺拷貝和深拷貝,需要的朋友可以參考下
    2019-06-06

最新評論