- 为了使得上一篇文章“js函数(类)的继承机制的设计与实现”中的继承模板更加规范,本文对其进行了修改。修改结果如下:
//js函数继承机制实现的模板规范。
//没有继承任何函数的函数规范定义
function parent_function(){
var obj_this = this;
obj_this.instantiate = function(){
obj_this = new parent_function();
obj_this.assign(obj_this);
return obj_this;
};
obj_this.assign = function(obj){
obj_this = obj;
};
/...
your code are written here
用obj_this完全代替this指针
.../
return obj_this;
}
//继承了父函数的子函数的函数规范定义
function your_function(){
var obj_this = this;
obj_this.instantiate = function(){
your_function.prototype = parent_function().instantiate();//继承父函数
your_function.prototype.construct = your_function;
obj_this = new your_function();
obj_this.assign(obj_this);//将本身赋值给自己包含的obj_this,相当于obj_this.obj_this = obj_this
return obj_this;
};
obj_this.assign = function(obj){//将本身赋值给自己包含的obj_this,相当于obj_this.obj_this = obj_this
obj_this = obj;
};
/...
your code are written here
用obj_this完全代替this指针,并可通过obj_this.来访问父函数和本函数的所有公有属性和方法
.../
return obj_this;
}
和之前的模板规范相比,本次改进,使得函数(类)中可以用obj_this来完全替代this指针,保证了更高的代码一致性和可阅读性。
欢迎大家提出意见。