国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
圖靈社區(qū) : 閱讀 : 我最欣賞的Javascript對象

Javascript小巧靈活,能夠完成各種高難度的設計模式。下面要介紹的,只是其中之一。蘿卜白菜,各有所愛吧。沒什么標準可以鑒定好壞。

比如我們要定義人類:

function man(){}var a = new man()

人要有名:

function man(name) {this.Name = name}var a = new man('a')var b = new man('b')

可人也要有錢有車有房有人關注,等等,人要的東西太多,最好不要在造人的時候想著這些。只想著she就好了。

function man(she){this.she = she}var a = new man({Name:'a', Sex:'m'})a.she.Name = 'A'

我們不想把心里的she袒露出來。這樣,我們就需要一個閉包:

function man(she){  var Name, Sex  return function(){Name = she.Name; Sex = she.Sex}}a = man({Name:'a', Sex:'m'})

但這樣就無法讀寫閉包包住的變量了。還好Javascript的函數也是對象,也就是可以直接讀寫屬性:

function man(){return function(){}}var a = man()a.Name = 'a'a.Sex = 'm'

改名容易:a.Name = 'A', 可我們不想隨便改性。這樣就需要getter/setter函數控制:

function man(){  var Name, Sex  function my(){}  my.Name = function(n){    if (!arguments.length) return Name    Name = n    return my  }  my.Sex = function(s) {     if (!arguments.length) return Sex     Sex = Sex ? Sex : s     return my  }  return my}a = man()a.Sex('m')a.Sex('f')x = a.Sex() // 'm'

而且我們讓每個函數返回對象自身,就可以很容易的把函數串接在一起:

a = man().Name('a').Sex('m')

帶取置函數的閉包,就是我最為欣賞的對象。

--
fango

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
理解 Javascript This 關鍵字
JavaScript繼承的幾種方法
Javascript之面向對象程序設計(一)
JavaScript中的構造函數和工廠函數說明
JavaScript 的 對象
prototype.js dojo 中 javascript繼承實現
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服