关注用户体验、前端开发,记录生活点滴、岁月足迹。
博学而笃志,切问而近思,仁在其中矣。
Posted on January 5th, 2010 in 开发 by lifesinger
slideshare 在线观看:The Beauty Of Refactoring ppt 下载:重构之美.pptx src code:/trunk/src/widget-switchable 欢迎讨论交流。
Tags: carousel, javascript, KISSY, refactoring, slide, switchable, tabs
非常赞,刚补看了“组合优于继承”的模式。
先看看,呵呵
很棒的内容,刚刚也写了一个这方面的内容,再看玉伯的这个slideshare,很有感触。
S.mix(self, Switchable.prototype, false); 把Switchable.prototype都加到widget上,要是其他widget有与Switchable.prototype相同的函数 不就冲突了? 例如在function Widget()里加上self._bindTriggers = function(){} 整个Switchable就不能用了
不错!
很喜欢你的blog哈~~杭州人帮顶,正希望进阿里巴巴找一份实习呢~
@bang: 的确如你所说。开放-封闭原则,对于 JavaScript 等动态语言来说,更多的是开放-信任原则:相信开发者不会给自己添麻烦,信任开发者不会互相冲突。对于动态语言,想做到“安全封闭”基本上是不可能的,无论 jQuery 的插件,还是 YUI 的组件,都存在你说的“问题”。甚至 JavaScript 语言本身,你如果定义一个 var undefined = 1, 世界也会乱的。
各个widget如果不相对封闭点的话会有点麻烦吧?里面的一些函数名属性名例如prev() next() triggers等还是挺常见的,这样的话每次开发新的widget都要看一遍其他widget的所有函数名,或者自己的函数名都加前缀,才能避免冲突。是否考虑改进一下呢。YUI3的组件似乎没这个问题~
@bang: 不会的。只有 var instance = S.Widget(“id”).switchable() 实例化时,才会给 instance 添加 prev, next 方法。有可能出现冲突的情况,仅出现在 S.Widget(“id”).switchable().draggable() 同时给一个 instance attach 多个组件功能时,才会冲突。一般情况下不会出现。这和 jQuery 的插件是一样的。
原来如此,我看成全局共用一个Widget实例了,搞错了~
yui-core + jquery 风格了啊,$(obj).action(config);
pptx格式。。。机子上还是2003.。
玉伯:链接有错误?能否更新下,谢谢!
啊啊,code 404了,哪位有存档啊。。。
恩,改名了,在http://kissy.googlecode.com/svn/trunk/build/switchable/ 下, 可以browse r394看当时的代码。恩,谢谢。
您好,看了几天的Kissy源码,感觉很震撼,代码很牛,可是也有很多不解,最不能理解的就是extend方法,测试代码如下: function foo(){ this.foo = “___foo___”; }; function fo(){ this.fo = “__fo__”; }; var fooo = KISSY.extend(fo,foo); alert(“_____test_________fo >> foo:”+fooo.toSource()); console.log(“_______________fo.superclass:”+fo.superclass.toSource()); 既然是继承,那为什么是继承在另一对象的prototype上呢,被继承对象的任何属性都继承不了? 难道只是为了建立父子关系么??
姓名(必填)
邮箱(必填,会为您保密)
你的博客或站点
发表评论
lifesinger,网名射雕,淘宝花名玉伯。关注用户体验,专注前端开发,相信简单就是力量。居住于美丽的杭州,就职于淘宝 UED 部,忙并快乐着。
January 5th, 2010 on 21:19
非常赞,刚补看了“组合优于继承”的模式。
January 6th, 2010 on 9:32
先看看,呵呵
January 6th, 2010 on 9:54
很棒的内容,刚刚也写了一个这方面的内容,再看玉伯的这个slideshare,很有感触。
January 6th, 2010 on 23:15
S.mix(self, Switchable.prototype, false);
把Switchable.prototype都加到widget上,要是其他widget有与Switchable.prototype相同的函数 不就冲突了?
例如在function Widget()里加上self._bindTriggers = function(){} 整个Switchable就不能用了
January 6th, 2010 on 23:22
不错!
January 7th, 2010 on 2:09
很喜欢你的blog哈~~杭州人帮顶,正希望进阿里巴巴找一份实习呢~
January 7th, 2010 on 7:40
@bang: 的确如你所说。开放-封闭原则,对于 JavaScript 等动态语言来说,更多的是开放-信任原则:相信开发者不会给自己添麻烦,信任开发者不会互相冲突。对于动态语言,想做到“安全封闭”基本上是不可能的,无论 jQuery 的插件,还是 YUI 的组件,都存在你说的“问题”。甚至 JavaScript 语言本身,你如果定义一个 var undefined = 1, 世界也会乱的。
January 7th, 2010 on 13:01
各个widget如果不相对封闭点的话会有点麻烦吧?里面的一些函数名属性名例如prev() next() triggers等还是挺常见的,这样的话每次开发新的widget都要看一遍其他widget的所有函数名,或者自己的函数名都加前缀,才能避免冲突。是否考虑改进一下呢。YUI3的组件似乎没这个问题~
January 7th, 2010 on 13:32
@bang: 不会的。只有 var instance = S.Widget(“id”).switchable() 实例化时,才会给 instance 添加 prev, next 方法。有可能出现冲突的情况,仅出现在 S.Widget(“id”).switchable().draggable() 同时给一个 instance attach 多个组件功能时,才会冲突。一般情况下不会出现。这和 jQuery 的插件是一样的。
January 7th, 2010 on 14:40
原来如此,我看成全局共用一个Widget实例了,搞错了~
January 9th, 2010 on 11:24
yui-core + jquery 风格了啊,$(obj).action(config);
January 12th, 2010 on 11:42
pptx格式。。。机子上还是2003.。
January 22nd, 2010 on 11:05
玉伯:链接有错误?能否更新下,谢谢!
February 1st, 2010 on 11:00
啊啊,code 404了,哪位有存档啊。。。
February 1st, 2010 on 11:04
恩,改名了,在http://kissy.googlecode.com/svn/trunk/build/switchable/ 下,
可以browse r394看当时的代码。恩,谢谢。
April 23rd, 2010 on 12:04
您好,看了几天的Kissy源码,感觉很震撼,代码很牛,可是也有很多不解,最不能理解的就是extend方法,测试代码如下:
function foo(){
this.foo = “___foo___”;
};
function fo(){
this.fo = “__fo__”;
};
var fooo = KISSY.extend(fo,foo);
alert(“_____test_________fo >> foo:”+fooo.toSource());
console.log(“_______________fo.superclass:”+fo.superclass.toSource());
既然是继承,那为什么是继承在另一对象的prototype上呢,被继承对象的任何属性都继承不了?
难道只是为了建立父子关系么??
leave a reply