最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript的setter與getter方法

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

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

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方法其實就是取代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)單獨設(shè)置getter方法時,只能獲取屬性值,無法更改其定義的屬性值的,保證了數(shù)據(jù)的安全性;

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

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

setter方法是有參數(shù),沒有返回值的;當(dāng)單獨設(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)文章

最新評論

清涧县| 平顺县| 岢岚县| 永安市| 浦北县| 文昌市| 保亭| 通渭县| 泽州县| 汤原县| 密云县| 临漳县| 麻江县| 黄平县| 亚东县| 沈阳市| 瓮安县| 西城区| 莱阳市| 丹江口市| 诸暨市| 新兴县| 轮台县| 白城市| 昆明市| 禹城市| 临高县| 盐城市| 漳浦县| 敦化市| 安福县| 昌乐县| 和政县| 阿拉善左旗| 通榆县| 江永县| 鄄城县| 新余市| 栾川县| 松溪县| 韶关市|