|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-07-05 关键字: mixin
首先,我自己都不知道自己想要什么结果,测试了之后才知道有没有价值. var jMixin = function(){
if (arguments.length>2) return;
var ths=this;
var callee=arguments.callee;
var caller=arguments.callee.caller;
if (arguments.length==0) {
ths.jMixin=callee;
return;
}
if (arguments.length==1){
var args=arguments[0];
if (caller!==null) ths = caller;
}else{
ths=arguments[0];
var args=arguments[1];
}
if (ths==window || ths==undefined) ths={};
if (arguments.length==1 && caller==null)
ths.jMixin=callee;
for(var prop in args) ths[prop]=args[prop];
return ths;
}
var o=jMixin();
jMixin(o,{c:2});
var oo=jMixin({o:1});
jMixin(oo,{c:2});
var o2=jMixin(o);
var foo={};
jMixin(foo,{c:2});
var foonewnone=new jMixin();
var foonew=new jMixin(o);
var foonew2=new foonew.jMixin({c:5});
声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-07-05
大概就是一个参数不传递,什么也不做
传递一个参数,当作args,如果有caller存在,把ths弄到caller再吧args里面参数弄到ths,如果没有caller,直接弄个空对象,把args弄到里面 2个参数,ths就是第一参数对象,把第二参数对象当作args,再吧args弄到ths里 带参数的调用都最后吧ths这个对象反回去 其中还有只有一参数时,如果没有caller还要在这个对象里面弄个jMixin,作者好似就是在打包,打各种各样的包 |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-05
我就是那个作者呀,打包?明明是混入(mixin)呀
|
|
| 返回顶楼 | |
|
最后更新时间:2008-07-06
窃以为无需把各种语言炒作的概念弄到JS里做个实现
而且 不要试图把模式封装成函数或者类 |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-06
csf178 写道 窃以为无需把各种语言炒作的概念弄到JS里做个实现
话是不错。可JS中这个很常见呀就是扩展的另一种形式和实现 csf178 写道 而且 不要试图把模式封装成函数或者类 貌似大家都是这么干的。 我也仅仅尝试一下,有没有意义自己也没谱 |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-06
试图把模式封装成类是很多OO的初学者常犯的错误
就好像在Java中写一个DesignPatterns包一样 呵呵 遗憾的是 JS中 很多"知名框架"也在犯这个错误 这导致了更多的新手被误导 像prototype.js中的Class就是很明显的例子 我也只是提醒楼主一下 希望你能设计的角度去思考一下 应该如何实现你想要的东西 |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-06
csf178 写道 试图把模式封装成类是很多OO的初学者常犯的错误
就好像在Java中写一个DesignPatterns包一样 呵呵 遗憾的是 JS中 很多"知名框架"也在犯这个错误 这导致了更多的新手被误导 像prototype.js中的Class就是很明显的例子 我也只是提醒楼主一下 希望你能设计的角度去思考一下 应该如何实现你想要的东西 我就是对这个模糊才自己做试验的,你这一提醒,我倒是要思考一下了。 能给几个这方面对比,批判的文章地址么? |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-06
csf178 写道 试图把模式封装成类是很多OO的初学者常犯的错误
就好像在Java中写一个DesignPatterns包一样 呵呵 遗憾的是 JS中 很多"知名框架"也在犯这个错误 这导致了更多的新手被误导 像prototype.js中的Class就是很明显的例子 我也只是提醒楼主一下 希望你能设计的角度去思考一下 应该如何实现你想要的东西 Class继承得到普遍的接受,这是毋庸置疑的。有诸多的js中的class继承实现,也说明了开发者的需要。不仅“知名框架”几乎都干这个事情,ES4也加入了Class。所以尽管有一小撮人坚信js可以不需要class继承(请勿怀疑其实偶也是这一小撮人之一),但是历史车轮是无法阻挡的。 |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-06
js不需要class,但是大规模编程好似不能没有class,class的包装始终比原型动态this后绑定清晰
|
|
| 返回顶楼 | |
|
最后更新时间:2008-07-07
hax 写道 csf178 写道 试图把模式封装成类是很多OO的初学者常犯的错误
就好像在Java中写一个DesignPatterns包一样 呵呵 遗憾的是 JS中 很多"知名框架"也在犯这个错误 这导致了更多的新手被误导 像prototype.js中的Class就是很明显的例子 我也只是提醒楼主一下 希望你能设计的角度去思考一下 应该如何实现你想要的东西 Class继承得到普遍的接受,这是毋庸置疑的。有诸多的js中的class继承实现,也说明了开发者的需要。不仅“知名框架”几乎都干这个事情,ES4也加入了Class。所以尽管有一小撮人坚信js可以不需要class继承(请勿怀疑其实偶也是这一小撮人之一),但是历史车轮是无法阻挡的。 错误不在class继承 也不在于将class继承在JS中实现 而在于将class继承封装为XX |
|
| 返回顶楼 | |







