3

我想用模块化模式来构建我的 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 {

    }()))

我想要实现的是以下之一:

  1. 扩展后调用APP.publicMethod()时,我想返回'childPrivate'而不是'private'
  2. 能够_priv从扩展的公开 API进行访问。

总之,我希望父模块中定义的私有变量将作为子模块的私有成员在子模块中继承。

4

1 回答 1

0

使用这种结构,您无法做到这一点。看看 John Resig 关于如何在 javascript 中实现继承的精彩文章:http: //ejohn.org/blog/simple-javascript-inheritance/

于 2013-09-05T21:06:37.587 回答