
2008年11月18日
很多javascript新手都觉得javascript的类、委托、事件很神秘,当你看下面几段代码后,你会觉得它也不过如此,和其他的面向对象的语言没什么差别。
javascript中的类:

javascript中的类
function Person(name, age) {
this._name = name;
this._age = age;
//对应Name的Get,Set方法,这个和Java的属性写法很像。
this.getName = function() {
return this._name
};
this.setName = function(name) {
this._name = name;
}
//对应Age的Get,Set方法
this.getAge = function() {
return this._age;
}
this.setAge = function(age) {
this._age = age;
}
//显示Person的信息方法
this.show = function() {
alert("Name:" + this.getName() + "; Age:" + this.getAge());
}
}
//空构造方法
var p1 = new Person();
p1.setName("Southsea");
p1.setAge(23);
p1.show();
//带参的构造方法
var p2 = new Person("Southsea", 23);
p2.show();
//注:Javascript中没有真正的方法重载
看起来很简单吧。
下面我们把Pererson类的show方法加一个参数,让它具有委托的功能。

委托
function Person(name, age) {
this._name = name;
this._age = age;
//对应Name的Get,Set方法,这个和Java的属性写法很像。
this.getName = function() {
return this._name
};
this.setName = function(name) {
this._name = name;
}
//对应Age的Get,Set方法
this.getAge = function() {
return this._age;
}
this.setAge = function(age) {
this._age = age;
}
//显示Person的信息方法
this.show = function(delegate) {
if (delegate) {
delegate(this);
}
}//只有这段与上面的不同。
}
//订阅Person类的show
function showPerson(p) {
alert("Name:" + p.getName() + "; Age:" + p.getAge());
}
var p = new Person("Southsea", 23);
p.show(showPerson); //别写成p.show(showPerson());哦
javascript中的事件

事件
function Person(name, age) {
this._name = name;
this._age = age;
//对应Name的Get,Set方法,这个和Java的属性写法很像。
this.getName = function() {
return this._name
};
this.setName = function(name) {
this._name = name;
}
//对应Age的Get,Set方法
this.getAge = function() {
return this._age;
}
this.setAge = function(age) {
this._age = age;
}
this.onShow = null;//加了onshow事件
//显示Person的信息方法
this.show = function() {
if (this.onShow) {
this.onShow(this);
}
}
}
//订阅Person类的show
function showPerson(p) {
alert("Name:" + p.getName() + "; Age:" + p.getAge());
}
var p = new Person("Southsea", 23);
p.onShow = showPerson; //千万别写成p.onShow = showPerson();
p.show();
委托和事件都看起来很简单吧。
javascript的动态类,它的格式是与JSON一样的。

动态类
var person = {
"Name": "Southsea",
"Age": 23, "show": function() {
alert("Name:" + person.Name + "; Age:" + person.Age);
}
};
person.show();
上面的几段代码是不是看起来很简单呀,希望这编文章对你有一定的帮助。。。
posted @ 2008-11-18 12:59 SouthSea 阅读(504) 评论(5)
编辑
今天在Terry Lee的博客中看到《Silverlight 3 -瞥》,之后找到Scott的原文《Update on Silverlight 2 - and a glimpse of Silverlight 3》,发现在Scott的文章里提到了K2的Blackpoint。
Silverlight已经发布了一段时间,但很少听说有企业用Silverlight来做产品或者做企业级开发,K2在很早前已经着手Silverlight版的设计工具"Blackpoint"(如果没记错的话,应该在Silverlight 2 Beta 1刚来出来的时候就开始开发Silverlight版的流程设计工具),现在blackpoint 已经是beta 2了,应该在不久的将来会发布正式版,期待中。。。
K2 Blackpoint与MOSS完美结合,它真正能做到No Code的流程开发。它和K2[blackpearl]差别很大。
了解K2的同学都知道K2[blackpearl]是一个很强大的流程平台,其中的"K2 Designer for Visual Studio"是个很强大的流程设计工具,但使用它来设计流程,流程设计者需要具备有编码能力。
而blackpoint并不需要编码,只要流程设计人员懂业务,就能完成企业流程的设计,的确很方便。看起来也非常好看。

本人前段时间在ASUS的项目中也写了一个Silverlight的控件,此控件为了完善K2本身的Viewflow而写的,这个控件的原型是我的老大David Dong(台湾的MVP)写的,当时他是基于Silverlight 1来写的,我后来把它完善,此控件在很方便的查看流程的当前节点的审批人员的相关信息,比K2本身自带的Viewflow多了这个功能(这可是很多企业都需要的哦,特别是在中国的企业)。现在Show出来给大家看看吧,样子不是很好看(这是我们的Beta 1,呵呵 。。。有待改善)。

1.能拖拽 2.能放大缩小
现在在华在地区已经有很几家企业打算使用这个控件了,(自我感觉良好,呵呵。。)我现在已经着手把它改成Silverlight 2,但由于 Silverlight 1 和 2差别很大,还有些难点要克服。
posted @ 2008-11-18 11:09 SouthSea 阅读(3005) 评论(11)
编辑

2008年4月1日
今天到公司后打开VS2005出现了如下图的状况,真是不可思意,今天是愚人节,难道是有人和我开玩笑?重启了几次还是这样子,第一次看到VS2005的Bug.

posted @ 2008-04-01 13:21 SouthSea 阅读(2735) 评论(36)
编辑

2007年11月27日
摘要: 《天气与生活》的保存城市问题,已经做了修正,大家下载看看下载链接今天(2008.1.18)又出现了不能显示温度的问题,现在已经解决不好意思,18号上传错文件了,现在上传上去的已经经过测试了,应该没问题了。谢谢大家一直以来的关注
阅读全文
posted @ 2007-11-27 11:21 SouthSea 阅读(972) 评论(8)
编辑

2007年11月5日
摘要: 上一节:LinQ学习之旅(1)基础数据类型都可以像 LinQ学习之旅(1) 那样写,对数据的筛选、排序C#语言的新特性自动属性:在以前的我们写一个类属性一般都要定义一个私有变量,如:publicclassPerson{privateint_id;publicintId{get{return_id;}set{_id=value;}}privatestring_fristName;publicstri...
阅读全文
posted @ 2007-11-05 13:31 SouthSea 阅读(1934) 评论(17)
编辑
摘要: 关注.NET的程序员,对LinQ这个名词应该已经听说过了,上个星期和THIN见了一下面,他给我演示了一下LinQ,觉得很有意思,有些东西很像JavaScript。后来在他的博客里也看到他写的一编文章。自己也写了一个小Demo,现在拿出来和大家分享一下,这编都是比较简单的例子,因为我也是才自学那么几天时间,Demo1:从一个整型数组中找出偶数:原始写法:int[]numbers={12,234,15...
阅读全文
posted @ 2007-11-05 12:35 SouthSea 阅读(3431) 评论(10)
编辑

2007年9月26日
摘要: 由于THIN的《天气与生活》显示数据有误, 经THIN的同意,我对《天气与生活》进行修改,现已经修正了一些BUG,现在发布上来和大家共享。下载新文体如还有什么问题,请通知我或THIN,谢谢!@zh0897提供保存城市问题解决方案:关于显示城市的问题.在你装好《天气与生活》后,先进入到http://weather.cn.yahoo.com/ 网站,输入你所在城市名,并设置为默认城市.这样,你的《天气...
阅读全文
posted @ 2007-09-26 22:59 SouthSea 阅读(8897) 评论(106)
编辑