首先呢,(function(which){})(this)这句的意思是:
function(which){} //声明一个匿名方法
(function(which){}) //返回该方法的引用
(function(which){})(this) //以当前闭包中的this为参数调用该方法这段方法,当你 var user = new User(properties)的时候,会为这个新的user实例添加get和set方法,不过这里有一个漏洞就是set和get都是对properties这对个object的引用,如果这个东东发生了变化,则set和get也会变化。还有一点要注意的就是这样做,properties是不会作为该User的成员出现的。老实说,写得挺晦涩阿。另外,这里which("get" + i),which("set" + i),不知道是不是写错了,应该写成 which["get" + i],which["set" + i] ?
function(which){} //声明一个匿名方法
(function(which){}) //返回该方法的引用
(function(which){})(this) //以当前闭包中的this为参数调用该方法这段方法,当你 var user = new User(properties)的时候,会为这个新的user实例添加get和set方法,不过这里有一个漏洞就是set和get都是对properties这对个object的引用,如果这个东东发生了变化,则set和get也会变化。还有一点要注意的就是这样做,properties是不会作为该User的成员出现的。老实说,写得挺晦涩阿。另外,这里which("get" + i),which("set" + i),不知道是不是写错了,应该写成 which["get" + i],which["set" + i] ?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货