Getter是一種獲取一個(gè)屬性的值的方法,Setter是一種設(shè)置一個(gè)屬性的值的方法。可以 " /> 日本一本在线播放,亚洲精品乱码久久久久久中文字幕 ,久久黄色小视频

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

關(guān)于__defineGetter__ 和__defineSetter__的說(shuō)明

作者:anbutu
來(lái)源:http://anbutu.Javaeye.com/blog/post/194276
關(guān)鍵字: JavaScript   Mozilla __defineGetter__ __defineSetter__

Getter是一種獲取一個(gè)屬性的值的方法,Setter是一種設(shè)置一個(gè)屬性的值的方法。可以為任何預(yù)定義的核心對(duì)象或用戶自定義對(duì)象定義getter和setter方法,從而為現(xiàn)有的對(duì)象添加新的屬性。
有兩種方法來(lái)定義Getter或Setter方法:

在對(duì)象初始化時(shí)定義 
在對(duì)象定義后通過(guò)Object的__defineGetter__、__defineSetter__方法來(lái)追加定義 
在使用對(duì)象初始化過(guò)程來(lái)定義Getter和Setter方法時(shí)唯一要做的事情就是在getter方法前面加上“get”,在setter方法前面加上“set”。
還有一點(diǎn)要注意的就是getter方法沒(méi)有參數(shù),setter方法必須有一個(gè)參數(shù),也就是要設(shè)置的屬性的新值。
例如:

復(fù)制代碼 代碼如下:
o = {    
    value:9,    
    get b() {return this.value;},    
    set setter(x) {this.value = x;}    
}    

在對(duì)象定義后給對(duì)象添加getter或setter方法要通過(guò)兩個(gè)特殊的方法__defineGetter__和__defineSetter__。這兩個(gè)函數(shù)要求第一個(gè)是getter或setter的名稱,以string給出,第二個(gè)參數(shù)是作為getter或setter的函數(shù)。
例如我們給Date對(duì)象添加一個(gè)year屬性:

復(fù)制代碼 代碼如下:
Date.prototype.__defineGetter__('year', function() {return this.getFullYear();});    
Date.prototype.__defineSetter__('year', function(y) {this.setFullYear(y)});    

var now = new Date;    
alert(now.year);    
now.year = 2006;    
alert(now);    

至于采用哪種形式主要取決于個(gè)人的編程風(fēng)格,采用第一種形式結(jié)構(gòu)緊湊,更容易理解。但是假如你想在對(duì)象定義以后再添加Getter或Setter,或者這個(gè)對(duì)象的原型不是你寫(xiě)的或是內(nèi)置對(duì)象,那么只好采用第二種方式了。
下面是一個(gè)為Mozilla瀏覽器添加innerText屬性的實(shí)現(xiàn):

復(fù)制代碼 代碼如下:
HTMLElement.prototype.__defineGetter__     
(    
   "innerText",function()    
   //define a getter method to get the value of innerText,     
   //so you can read it now!     
   {    
      var textRange = this.ownerDocument.createRange();    
      //Using range to retrieve the content of the object    
      textRange.selectNodeContents(this);    
      //only get the content of the object node    
      return textRange.toString();    
      // give innerText the value of the node content    
   }    
); 

JavaScript技術(shù)關(guān)于__defineGetter__ 和__defineSetter__的說(shuō)明,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 一本之道高清在线观看一区 | 国产精品久久久久久影院 | 无套暴躁白丝秘书 | 秋霞网在线伦理影片 | 在线观看国产亚洲 | 蜜桃成熟时2在线 | 亚洲人日本人jlzzy | 人与禽交3d动漫羞羞动漫 | 91久久线看在观草草青青 | 俄罗斯性孕妇孕交 | 国精产品一区二区三区四区糖心 | 久久人妻少妇嫩草AV无码 | 成人免费视频在线看 | 国产午夜在线观看视频播放 | 午夜在线观看免费完整直播网页 | 男女性杂交内射妇女BBWXZ | Chineseman瘦老头77 | 色哟哟tv| 永久免费的无码中文字幕 | 伊人大香线蕉影院在线播放 | 中国videos1314tv| 国产短视频精品区 | 国产精品久久久久久人妻香蕉 | 亚洲理论在线a中文字幕 | 久久秋霞理论电影 | 欧美 亚洲 日韩 在线综合 | 一品道门在线观看免费视频 | metart中国撒尿人体欣赏 | 国产a在线不卡 | 天美传媒在线观看免费完整版 | 日日噜噜夜夜狠狠扒开双腿 | 97国内精品久久久久久久影视 | 偷偷鲁青春草原视频分类 | 麻豆AV福利AV久久AV | 日本一二三区视频在线 | 一级淫片bbbxxx | 中文字幕专区高清在线观看 | 久久er国产精品免费观看2 | 美国色吧影院 | avav去吧 | 饥渴的护士自慰被发现 |