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

JavaScript的setter與getter方法

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

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

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

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

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

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

上面的就是一個(gè)存取器屬性定義的最簡單的方法,可以看出getter和setter方法其實(shí)就是取代function的一個(gè)函數(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í),只能獲取屬性值,無法更改其定義的屬性值的,保證了數(shù)據(jù)的安全性;

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

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

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

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)文章

最新評論

涟水县| 岑巩县| 纳雍县| 汉阴县| 达州市| 鄂尔多斯市| 拜泉县| 密云县| 遂昌县| 剑阁县| 南京市| 南充市| 大理市| 荥阳市| 青铜峡市| 西城区| 华宁县| 隆德县| 社旗县| 青龙| 伊宁市| 东乌珠穆沁旗| 上饶市| 永清县| 赣州市| 惠来县| 三亚市| 镇安县| 凌云县| 北海市| 都匀市| 关岭| 科尔| 巴青县| 剑阁县| 商水县| 左贡县| 郯城县| 昌乐县| 禹州市| 射阳县|