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

JavaScript的setter與getter方法

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

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

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

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

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

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

上面的就是一個存取器屬性定義的最簡單的方法,可以看出getter和setter方法其實就是取代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ù),并且有返回值的;當單獨設置getter方法時,只能獲取屬性值,無法更改其定義的屬性值的,保證了數(shù)據的安全性;

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

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

setter方法是有參數(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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

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

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

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

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

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

    一文搞懂如何避免JavaScript內存泄漏

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

    JS如何設置iOS中微信瀏覽器的title

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

    微信小程序實現(xiàn)禁止分享代碼實例

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

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

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

    你知道該如何捕獲js報錯前的用戶行為嗎

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

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

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

    Bootstrap每天必學之縮略圖與警示窗

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

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

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

最新評論