亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript對象屬性的getter和setter

2019-11-08 02:48:19
字體:
來源:轉載
供稿:網友

javaScript對象的屬性是由名字、值和一組特性組成的。在ECMAScript5中,屬性的值可以由一個或兩個方法替代,這兩個方法就是getter和setter。由getter和setter定義的屬性稱為“存取器屬性”,它不同于“數據屬性”,數據屬性只有一個簡單的值。

當程序查詢存取器屬性的值時,Javascript調用getter方法(無參數)。這個方法返回的值就是屬性存取表達式的值。當程序設置一個存取器屬性的值時,JavaScript調用setter方法,將賦值表達式右側的值當做參數傳入setter。從某種意義上講,這個方法負責“設置”屬性值。可以忽略setter方法的返回值。

和數據屬性不同,存取器屬性不具有可寫性。如果屬性同時具有getter和setter方法,那么它是一個讀/寫屬性。如果它只有getter方法,那么它是一個只讀屬性。如果它只有setter方法,那么它是一個只寫屬性(數據屬性中有一些例外),讀取只寫屬性總是返回undefined。

定義存取器屬性最簡單的一種方法是使用對象直接量語法的一種擴展寫法:

var o = {	//普通的數據屬性	data_PRop: value,		//存取器屬性都是成對定義的函數	get accessor_prop(){/*這里是函數體*/},	set accessor_prop(value){/*這里是函數體*/}};存取器屬性定義為一個或兩個和屬性同名的函數,這個函數定義沒有使用function關鍵字,而是使用get和set。注意這里沒有使用冒號將屬性名和函數體分開,但在函數體的結束和下一個方法或數據屬性之間有逗號分隔。例如,思考下面這個表示2D笛卡爾點坐標的對象,它有兩個普通的屬性x和y分別表示對應點的X坐標和Y坐標,它還有兩個等價的存取器屬性用來表示點的極坐標:
var p = {	//x和y是普通的可讀寫的數據屬性	x: 1.0,	y: 1.0,		//r是可讀寫的存取器屬性,它有getter和setter。	//函數體結束之后不要忘記帶上逗號	get r(){ return Math.sqrt(this.x * this.x + this.y * this.y); },	set r(newValue){		var oldValue = Math.sqrt(this.x * this.x + this.y * this.y);		var ratio = newValue / oldValue;		this.x *= ratio;		this.y *= ratio;	},	//theta是只讀存取器屬性,它只有getter方法	get theta(){ return Math.atan2(this.y, this.x);}};

注意這段代碼里面getter和setter使用了this關鍵字。在函數體內的this指向表示這個點的對象,因此r屬性的getter方法可以通過this.x和this.y來引用x屬性和y屬性。

和數據屬性一樣,存取器屬性是可以繼承的。因此可以將上述代碼中的對象p當做另一個點的原型。

在ECMAScript5標準被采納之前,大多數JavaScript的實現已經可以支持對象直接量語法中的get和set寫法。這些實現提供了非標準的老式API用來查詢和設置getter和setter。這些API由4個方法組成,所有對象都擁有這些方法。__lookupGetter__()和__lookupSetter__()用以返回一個命名屬性的getter和setter方法。__defineGetter__()和__defineSetter__()用以定義getter和setter,這兩個函數的第一個參數是屬性名字,第二個參數是getter和setter方法。這4個方法都是以兩條下劃線作為前綴,兩條下劃線作為后綴,以表明它們是非標準的方法。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩欧美国产骚| 久久久亚洲天堂| 欧美午夜美女看片| 奇门遁甲1982国语版免费观看高清| 日韩综合中文字幕| 性夜试看影院91社区| 欧美激情va永久在线播放| 精品久久久香蕉免费精品视频| 欧美精品亚州精品| 懂色av一区二区三区| 国产精品免费看久久久香蕉| 精品福利视频导航| 国内精品久久久久伊人av| 亚洲人成电影网站| 热久久视久久精品18亚洲精品| 伊人亚洲福利一区二区三区| 国产精品黄页免费高清在线观看| 国产一区二区动漫| 国产一区av在线| 91免费视频网站| 欧美性生交大片免费| 成人性生交xxxxx网站| 日韩精品免费一线在线观看| 亚洲最新av在线网站| 精品久久久久久久久久ntr影视| 国产成人精品a视频一区www| 亚洲精品日韩久久久| 亚洲理论电影网| 亚洲欧美日韩天堂| 久久成人精品一区二区三区| 国产69精品久久久久久| 国产亚洲精品综合一区91| 国产成人高潮免费观看精品| 伊人精品在线观看| 精品国产成人在线| 欧美老女人性生活| 91精品国产色综合久久不卡98口| 欧美电影免费观看电视剧大全| 国产一区深夜福利| 欧美激情一区二区三区高清视频| 久久成人18免费网站| 4388成人网| 欧美一级片一区| 日韩av手机在线| 国产精品99久久久久久白浆小说| 自拍偷拍亚洲区| 欧美与黑人午夜性猛交久久久| 久久躁狠狠躁夜夜爽| 91精品国产乱码久久久久久蜜臀| 亚洲最大av在线| 精品日本美女福利在线观看| 91精品久久久久久久| 日韩成人在线网站| 国产亚洲欧美视频| 国产精品视频1区| 精品一区电影国产| 亚洲无av在线中文字幕| 57pao成人永久免费视频| 欧美激情综合色综合啪啪五月| 亚洲电影第1页| 久久av资源网站| 最近2019中文字幕第三页视频| 精品国产依人香蕉在线精品| 一区国产精品视频| 国产69久久精品成人看| 欧美成人精品一区二区| 亚洲国产精品小视频| 欧美黑人国产人伦爽爽爽| 中文字幕国产日韩| 欧美人交a欧美精品| 亚洲视频电影图片偷拍一区| 久久久久久久久久久91| 亚洲国产另类久久精品| 国产成人+综合亚洲+天堂| 日韩成人在线免费观看| 精品国产区一区二区三区在线观看| 久久99热这里只有精品国产| 欧美日韩国产一区二区三区| 中文日韩电影网站| 欧美小视频在线观看| 欧美午夜电影在线| 2024亚洲男人天堂| 欧美日韩国产在线看| 欧美激情性做爰免费视频| 国产久一一精品| 91免费看片网站| 久久天天躁狠狠躁老女人| 视频在线观看99| 久久国产精品99国产精| 日韩精品视频免费专区在线播放| 热久久这里只有精品| 欧美成人合集magnet| 欧美日韩一区二区在线播放| 欧美有码在线观看视频| 国产日韩在线精品av| 欧美在线视频网站| 欧美成人自拍视频| 欧美一级视频一区二区| 亚洲自拍中文字幕| 亚洲天堂av在线播放| 亚洲欧美成人在线| 国产精品久久综合av爱欲tv| 国产福利成人在线| 色婷婷综合成人av| 综合网日日天干夜夜久久| 成人性生交大片免费看视频直播| 日韩暖暖在线视频| 一区二区三区四区精品| 欧美日韩激情视频8区| 亚洲人免费视频| 久久久欧美一区二区| 懂色av中文一区二区三区天美| 91精品国产综合久久久久久久久| 欧美日韩精品在线播放| 欧美性猛交xxxx久久久| 欧美二区乱c黑人| 欧美老妇交乱视频| 日韩中文字幕国产| 91精品视频一区| 亚洲一区www| 久久久成人精品| 亚洲国语精品自产拍在线观看| 亚洲欧美国内爽妇网| 日韩成人小视频| 日本欧美精品在线| 91po在线观看91精品国产性色| 久久艳片www.17c.com| 91网站在线免费观看| 欧美激情三级免费| 欧美日韩中文字幕在线视频| 97视频免费在线观看| 97精品欧美一区二区三区| 91精品国产高清久久久久久久久| 红桃视频成人在线观看| 国产日韩欧美成人| 亚洲一区二区三区毛片| 亚洲欧美色图片| 国产精品入口尤物| 深夜精品寂寞黄网站在线观看| 亚洲第一区中文字幕| 国产视频观看一区| 国产日韩欧美电影在线观看| 欧美成人国产va精品日本一级| 久久久久久久久久国产精品| 国产精品专区h在线观看| 国外成人在线视频| 久久精品中文字幕免费mv| 国内精品久久久久久中文字幕| 国产精品永久免费在线| 精品偷拍各种wc美女嘘嘘| 亚洲91精品在线| 欧美视频二区36p| 日韩欧美精品在线观看| 久久久久久高潮国产精品视| 中文欧美日本在线资源| 国产精品视频公开费视频| 91豆花精品一区| 亚洲精品国产精品乱码不99按摩| 亚洲色图13p| 国产偷国产偷亚洲清高网站| 久久中文字幕一区| 色yeye香蕉凹凸一区二区av| 欧美诱惑福利视频| 欧美自拍视频在线观看|