寫一個JS class時,如 [Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]為了容易理解代碼,以及更好的區分public和private的變量,我通常用set...方法(...為某(些)成員 " /> 在线自拍亚洲视频欧美,亚洲熟少妇在线播放999,久草青青在线

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

js defineSetter -給js的 "class"自動增加一個set的屬性(方法)

寫注釋不是我的強項,有什么問題請在評論中寫出來:D

寫一個JS class時,如

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
為了容易理解代碼,以及更好的區分public和private的變量,我通常用set...方法(...為某(些)成員變量)來賦值給類的成員。這些set方法當然就是public的。還有一點就是使代碼能夠更規范一些。

然而問題就出在這里,如果以上代碼不考慮驗證有效性(或者只驗證簡單的有效性),那我們就會多出很多的代碼,試想一個類有20個成員(屬性),那么我們就得加20個set...方法,實在多余,因此,要想辦法來解決這個問題。

回憶在Mozilla中,有__defineSetter__和__defineGetter__的方法來給DOM增加成員,給開發人員帶來很多方便。我們也來仿一個js版的__defineSetter。

簡單的思路:
利用JS動態給對象增加方法(或屬性)
但類中方法不必再添加set...此類方法。
非[a-z]區間的屬性也不再添加set...此類方法。

寫出實現代碼

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
基本實現了_defineSetter,而我們要一個個的defineSetter豈不是太麻煩了。既然已經實現了原型,那么用原型來動態綁定到Function對象上,一行代碼就解決了set..方法了。
Function.prototype.defineAllSetter = function (hdle) {

  for (var i in this.prototype)
  _defineSetter.apply(this, [this,i,hdle]);

  return this;

};

接下來就是再綁定一個defineSetter給Function對象。

Function.prototype.defineSetter = function (p, hdle) {

  return _defineSetter.apply(this, 
  [this].concat(Array.prototype.slice.call(arguments,0)));

};

OK!基本完成想要的功能。try it...

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]本例DEMO及全部代碼:
http://www.never-online.NET/code/js/defineSetter/

當然,我們還可以加入驗證~,具體的代碼我就不再多寫了,呵呵,已經實現了,有興趣的朋友也試著玩一下:D。 

JavaScript技術js defineSetter -給js的 "class"自動增加一個set的屬性(方法),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: ai换脸女明星被躁在线观看免费 | 大学生高潮无套内谢视频 | 日本最新在线不卡免费视频 | 麻豆精品传媒一二三区 | 91嫩草私人成人亚洲影院 | 无码国产欧美日韩精品 | 久久vs国产综合色 | 果冻传媒免费观看 | 亚洲阿v天堂在线2017 | 55夜色66夜亚洲精品播放 | 亚洲精品久久99蜜芽尤物TV | 理论片在线观看片免费 | 日韩高清毛片 | 亚洲天堂999 | u15女少天堂写真 | 久久成人免费观看全部免费 | xxx在线播放 | 国产精品久久毛片A片软件爽爽 | 好湿好滑好硬好爽好深视频 | 国产午夜精品片一区二区三区 | 2021年国产精品久久 | 天天久久影视色香综合网 | 456亚洲人成在线播放网站 | 爆乳啪啪无码成人二区亚洲欧美 | 欧美一级成人影院免费的 | 国产亚洲精品久久久久久国 | 在线少女漫画 | 蕾丝边娱乐网 | 欧美国产影院 | 极品虎白在线观看 | 韩国羞羞秘密教学子开车漫书 | 国产欧美国日产在线播放 | 在线视频 日韩视频二区 | 中文日韩亚洲欧美字幕 | 九九热这里都是精品 | 一级黄色香蕉视频 | 最新国产在线视频在线 | 久久精品手机观看 | 67194成网页发布在线观看 | 久久综合色视频 | 亚洲精品青青草原avav久久qv |