Yahoo UI中的Crockford Pattern是什么?
2006-09-19 17:37 BAsil 阅读(466) 评论(0) 编辑 收藏 举报
好久没有写博了,有些对不住大家了。不过我的博访问量极少,基本都是我自己浏览的,不过咱还是得抓点紧不是。
最近在用Yahoo UI简称YUI的TreeView控件,结合Xmlhttp访问服务器端,真的是挺方便;而且YUI是遵守BSD协议的,不管是自用还是商用都没有版权的问题。在使用的过程中,不可避免的要阅读一下YUI的源代码,发现其中经常遇到一个叫做Crockford Pattern的名次,里面对javascript类的封装有些特别。我简单分析了一下,又给出了以前我们习惯的写法,两相比较,就比较好理解了。
YUI是这么写的:
var d=function()
{
a=3;
b=5;
this.c=6;
return{ info1:"info1 from b",
info2:"info2 from b",a:a,b:this.b,c:this.c};

}()
alert(d.info1+","+d.info2+","+d.a+","+d.b+","+d.c);
我们常用的写法:
function s()
{
return{ info1:"info1 from b",
info2:"info2 from b"};
}
b=new s();
alert(b.info1+","+b.info2);
或者
var s=function()
{
return{ info1:"info1 from b",
info2:"info2 from b"};
}
b=new s();
alert(b.info1+","+b.info2);
实际上,我感觉Crockford方法,就是声明了一个静态类,然后直接调用“静态类名+属性”。这样对比理解应该比较简单了。
再来做一组对比
var handleSuccess = function(o)
{
alert("success");

}
var handleFailure=function(o)
{
return false;
}()
var h=new handleSuccess("");
alert(handleSuccess);
alert(handleFailure);
此时handleSuccess是一个函数变量而handleFailure是一个bool变量,值为false。而handleFailure方法就是Crockford pattern。
另外我在测试的时候发现return 后的返回值必须紧跟return,不能折行,下面的写法是错误的。
a=function()
{
return
{ info1:"info1 from a",
info2:"info2 from a"
}
}()
alert(a.info1+","+a.info2);
最近在用Yahoo UI简称YUI的TreeView控件,结合Xmlhttp访问服务器端,真的是挺方便;而且YUI是遵守BSD协议的,不管是自用还是商用都没有版权的问题。在使用的过程中,不可避免的要阅读一下YUI的源代码,发现其中经常遇到一个叫做Crockford Pattern的名次,里面对javascript类的封装有些特别。我简单分析了一下,又给出了以前我们习惯的写法,两相比较,就比较好理解了。
YUI是这么写的:










我们常用的写法:














实际上,我感觉Crockford方法,就是声明了一个静态类,然后直接调用“静态类名+属性”。这样对比理解应该比较简单了。
再来做一组对比













此时handleSuccess是一个函数变量而handleFailure是一个bool变量,值为false。而handleFailure方法就是Crockford pattern。
另外我在测试的时候发现return 后的返回值必须紧跟return,不能折行,下面的写法是错误的。








【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架