国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript的setter與getter方法

2019-11-19 14:49:52
字體:
來源:轉載
供稿:網友

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

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

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

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

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

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

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

getter方法是無參數,并且有返回值的;當單獨設置getter方法時,只能獲取屬性值,無法更改其定義的屬性值的,保證了數據的安全性;

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

setter方法是有參數,沒有返回值的;當單獨設置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);//3console.log(o.val);//9o.val = 10;console.log(o.a);//10console.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);//10foo.val = 9;console.log(foo.val);//10

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 株洲市| 怀化市| 白城市| 阳山县| 江孜县| 玛曲县| 麟游县| 上杭县| 翼城县| 旌德县| 扎赉特旗| 武威市| 阜宁县| 顺义区| 河北区| 泰安市| 涿鹿县| 三原县| 金华市| 郴州市| 鞍山市| 松江区| 庆安县| 米泉市| 义马市| 墨江| 都江堰市| 永善县| 金山区| 沙湾县| 上饶市| 安阳县| 延寿县| 嘉义县| 商河县| 岐山县| 遂昌县| 米泉市| 宁陵县| 扬中市| 阜新|