初学js闭包遇到的问题,如何在闭包时实现继承
function SomeFunction(arg){
var self = this;
self.module1 = function(){
return {
moduleFunc: function(){
console.log(val);
}
};
}
self.module2 = function(){
return {
moduleFunc: function(){
console.log(val);
}
};
}
self.base = function(){
var val;
return {
getValue: function(){
return val;
},
setValue: function(arg){
val = arg;
}
}
}
//下面省掉的代码可以保证通过传入arg来确定执行module1还是module2
}
var module1 = SomeFunction("module1");
module1.setValue("xxxx");
console.log(module1.getValue());//期望打印xxxx
module1.moduleFunc();//期望也打印xxxx
现在希望module1和module2执行后返回的object中有base中getValue和setValue两个方法,
同时保证moduleFunc可以访问到base中的val
而且允许module1和module2中使用自己的setValue和getValue覆盖base里默认提供的方法
如何做到继承或者覆盖呢?
可以使用jQuery.extend如果需要的话
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
module2也是一样。