我想用模块化模式来构建我的 javascript 应用程序,如下所示:
APP = (function() {
// Private stuff
var _privateVariable = 'private',
_priv = 'priv'
_privateMethod = function(){ /* */ };
// Exposed API
return {
publicVariable : 'public',
publicMethod : function(){
return _privateVariable
};
}());
然后我希望能够通过类似插件的模块来扩展应用程序;例如,使用 jQuery:
$.extend(true, APP, (function() {
// Child private stuff
var _privateVariable = 'childPrivate',
// Exposed API
return {
}()))
我想要实现的是以下之一:
- 扩展后调用
APP.publicMethod()
时,我想返回'childPrivate'
而不是'private'
; - 能够
_priv
从扩展的公开 API进行访问。
总之,我希望父模块中定义的私有变量将作为子模块的私有成员在子模块中继承。