1.用到AJAX类型
2实现
3.注意点
4.用例
我们要用AJAX的JS写一个面向对象的类,首先我们必须理解AJAX中的Type类,在定义类时一个需要定义这个类的名字空间,我们在写JS脚本时在写类似与名字空间往往很困难或很反锁,在使用JS脚本时也很可能在多个脚本引用会出现重名的现象,导致出现名字冲突而程序无法运行,MSAJAX给我们提供了一个便捷的注册名字空间的方法-Type.registerNamespace().
接下来创建一个类并创建她的构造函数,定义类字段并把参数传给类所属字段.
fww.Person=function(id,name)
{
this._id=id;
this._name=name;
}
第三步创建类的属性,属性放在 class.prototype 中,get 表示获得,set表示获得,方法同属性一样只是不需要get,set
fww.Person.prototype=
{
get_id:function()
{
return this._id;
},
get_name:function()
{
return this._name;
},
set_name:function(value)
{
if(value!=null)
{
this._name=value;
}
},
tostring:function()
{
return String.format("你好,我是{0},我的工号是:{1}",this.get_name(),this.get_id());
}
}
第四步将类注册给MSAJAX
fww.Person.registerClass("fww.Person");
这个一个面向对象的类就创建成功了,
注意点:
1.在定义属性和方法,建议大家用get,与set ,其实这里在JS内部是不区分的你不用get,与set 也没关系主要是为了让别人或自己更明白这个函数的意义,这个算是个规范吧.
2.在定义类字段时我并没有像.NET中在构造函数外显示定义类字段,而是用了this.FiledName,这个时可行的因为JS是一种弱类型语言,允许这样做,this._id等同与在类中定义 var id.
3.在调用类属性时不要忘了加()噢!大家可能用.NET习惯了person.get_name来调用,在JS这样时错误的,我在的一点已经说过了在JS中不管时属性和方法他们都时Function方法所有真确的调用时必须加()-person.get_name(),这样才会调用成功.
4.在写属性的set方法时要注意判断value的值是否是NULL,当然这个只是我点建议您不写也可以
完整用例:
Type.registerNamespace("fww")
fww.Person=function(id,name)
{
this._id=id;
this._name=name;
}
fww.Person.prototype=
{
get_id:function()
{
return this._id;
},
get_name:function()
{
return this._name;
},
set_name:function(value)
{
if(value!=null)
{
this._name=value;
}
},
tostring:function()
{
return String.format("你好,我是{0},我的工号是:{1}",this.get_name(),this.get_id());
}
}fww.Person.registerClass("fww.Person");
就那么多了在MSAJAX第三章-JS创建类(2)中交大家怎么去写一个继承类的写法.