我最欣賞的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
相關文章
- 最欣賞的人(精選篇)
- 欣賞超越數e的世界
- 人與人的最健康和美好的距離是互相尊重和欣賞
- JTalk Online:面試官教你快速成為 leader 最欣賞的技術人面試
- 我對JavaScript物件的理解JavaScript物件
- 優美圖片網-美女欣賞天堂
- 廣告設計欣賞!廣告裡的"冰天雪地"!
- 高手也幽默:mod_ssl 語錄欣賞
- 優美圖片網官方網站欣賞網站
- 30個支付頁面UI設計欣賞UI
- 優秀品牌VI設計欣賞!風格
- # 【nodejs原理&原始碼賞析(3)】欣賞手術級的原型鏈加工藝術NodeJS原始碼原型
- 酷站欣賞:8個簡約風格的網站作品網站
- 學會欣賞“超休閒”的遊戲設計!(上)遊戲設計
- Edge BUG欣賞之四摸雞與IP地址的恩怨
- UI | 不同傢俱類網頁設計欣賞UI網頁
- 10個最新手機美食APP介面設計欣賞APP
- 讀《學習之道》— 學會自我欣賞、朔造你的大腦
- ThinkPHP開源部落格系統,樣子請自行欣賞PHP
- 靈感 | 12組家居電商類APP設計欣賞APP
- 最佳運動類APP-Keep原型設計與欣賞APP原型
- 創意APP圖示設計欣賞!小處見真章APP
- 10個最新互動式Web設計例項欣賞Web
- 大發一分鐘一開最強回血技巧規律是兩情相悅的欣賞,是彼此的懂得。
- 動手實現一個localcache - 欣賞優秀的開源設計
- 十分鐘帶你欣賞ES6語法糖
- JavaScript物件:我們真的需要模擬類嗎?JavaScript物件
- JavaScript物件與建立物件的方式JavaScript物件
- 21款國外網頁UI設計欣賞,文字排版不再單調!網頁UI
- 廣告設計欣賞!動物篇,創意不夠萌物湊!
- ECMAScript委員會:JavaScript最基礎的14種操作物件的方法JavaScript物件
- Javascript 物件 – 字串物件JavaScript物件字串
- JavaScript 物件JavaScript物件
- JavaScript物件JavaScript物件
- JavaScript的內建物件JavaScript物件
- JavaScript 建立物件的方式JavaScript物件
- Javascript 物件 – 陣列物件JavaScript物件陣列
- Javascript 物件 – 數學物件JavaScript物件
- JavaScript高階:JavaScript物件導向,JavaScript內建物件,JavaScript BOM,JavaScript封裝JavaScript物件封裝