使用JS原型(prototype)来做面向对象,模块化部分代码~
今天和同事讨论了下prototype,我个人比较倾向于把部分逻辑放到前端实现,从而减少对后端数据的耦合,相当于在做富客户端应用,如果这么做就必须要在客户端用面向对象编程来处理模块,但同事也很在理,一是兼容性的考虑,二是如果只是web应用或简单的web game似乎真没多少逻辑会放到浏览器去渲染的~ 好吧,不管如何也好~ 先探讨,用来做做小应用来玩着先吧~
function Model()
{
this.sendRequest = function(callBack,args){
//alert(args.age);
alert("请求的url:"+this.url);
data = {ret:0,data:"abc"};
//ajax 拦截 通用的返回...
this.updateRoleStatus(data);
//回调callback...
if(callBack) callBack(data);
return data;
};
}
Model.prototype.updateRoleStatus = function(data){
alert("update role status");
}
Model.prototype.run = function(){
alert(321);
}
function Job()
{
}
Job.prototype = new Model();
Job.prototype.run = function(jobId,callBack){
data = this.sendRequest(callBack,{jobId:jobId});
this.render(data);
}
Job.prototype.render = function(){
}
function YZJob(){
this.url = "/yangzhou/job/do.ngi";
}
YZJob.prototype = new Job();
YZJob.prototype.render = function(){
alert("render!");
}
var oJob = new YZJob();
oJob.run(123);
function GDJob(){
this.url = "/guandu/job/do.ngi";
}
GDJob.prototype = new Job();
GDJob.prototype.render = function(){
alert("render!");
}
{
this.sendRequest = function(callBack,args){
//alert(args.age);
alert("请求的url:"+this.url);
data = {ret:0,data:"abc"};
//ajax 拦截 通用的返回...
this.updateRoleStatus(data);
//回调callback...
if(callBack) callBack(data);
return data;
};
}
Model.prototype.updateRoleStatus = function(data){
alert("update role status");
}
Model.prototype.run = function(){
alert(321);
}
function Job()
{
}
Job.prototype = new Model();
Job.prototype.run = function(jobId,callBack){
data = this.sendRequest(callBack,{jobId:jobId});
this.render(data);
}
Job.prototype.render = function(){
}
function YZJob(){
this.url = "/yangzhou/job/do.ngi";
}
YZJob.prototype = new Job();
YZJob.prototype.render = function(){
alert("render!");
}
var oJob = new YZJob();
oJob.run(123);
function GDJob(){
this.url = "/guandu/job/do.ngi";
}
GDJob.prototype = new Job();
GDJob.prototype.render = function(){
alert("render!");
}
原创文章,转载请注明: 转载自小黑米的生活
本文链接地址: [Javascript] 原型(prototype)实现面向对象