对原型式继承的一些个人理解(不正经系列)
原型式继承是通过一个公用厕所(函数) ,在厕所里创建独立包间(创建构建函数),在这个包间的便器上(原型上)传入不明物体(参数),于是这个物体被现实return到你的眼中,然后他就在使用中不断重复利用。
代码如下:
function wc(ooxx) {
function Rbq(){};
Rbq.prototype = ooxx;
return new Rbq;
};
var shi = {
one : '很黑',
two : '很硬',
three : function() {
return this.one + this.two + '真香...';
}
};
var yan = wc(shi);
alert(yan.three());
返回: 很硬很黑真香...
我一想,这不就是利用原型传入参数,然后调用吗,这样写不是更绕吗?于是我直接给wc的原型传入shi不就行了?
function Wc() {};
Wc.prototype = shi;
var shi = {
one : '很黑',
two : '很硬',
three : function() {
return this.one + this.two + '真香...';
}
};
var yan = new Wc();
alert(yan.three());
返回错误!
我一看,写的顺序不对,shi这个变量都没写,就被传入了,是不存在的,会报错,于是我把shi放在了构建函数Wc前面,就没问题了,但是这样也衍生了问题,你不知道你传入的参数是在前面还是在后面,而且,整个不好封装,因为原型和实例都是分开的,而且还不能传参,于是我们又返回到上面了,发现利用函数将原型和实例包起来,然后还可以解决不能传参的问题,这样封装方便,顺序上只要传入时的代码在被传入的变量参数(shi)后面,就行了。
分类:
JavaScript
标签:
原型式继承
版权申明
本文系作者 @木灵鱼儿 原创发布在木灵鱼儿站点。未经许可,禁止转载。
暂无评论数据