打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
图灵社区 : 阅读 : 我最欣赏的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

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
理解 Javascript This 关键字
JavaScript继承的几种方法
Javascript之面向对象程序设计(一)
JavaScript中的构造函数和工厂函数说明
JavaScript 的 对象
prototype.js dojo 中 javascript继承实现
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服