javascript - 初学js闭包遇到的问题,如何在闭包时实现继承
PHPz
PHPz 2017-04-10 16:56:30
0
1
236
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如果需要的话

PHPz
PHPz

学习是最好的投资!

reply all (1)
洪涛
self.module1 = function() { var insideBase = self.base(); var ret = { moduleFunc: function() { console.log(insideBase.getValue()); } }; return jQuery.extend(ret, insideBase); }

module2也是一样。

    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template
    About us Disclaimer Sitemap
    php.cn:Public welfare online PHP training,Help PHP learners grow quickly!