繁体   English   中英

如何通过构造函数在另一个对象下设置对象

[英]How can i set an object under another by constructor

我有一个像

function foo() {
    this.bar = function() {
         return "fubar";
    }
}

当我调用new foo().bar();时,这里没有问题new foo().bar();

但是如果我想做这样的事情

function foo() {
    this.bar = function() {
         function subbar() {
            return "subbar";
         };
    }
}

我已经尝试过以下版本,但没有一个起作用。

function foo() {
    this.bar = function() {
         this.bar.subbar() {
            return "subbar";
         };
    }

}

function foo() {
    this.bar = function() {
         this.bar.prototype.subbar() {
            return "subbar";
         };
    }
}

我如何到达像new foo().bar().subbar()

只需返回具有最内部功能的对象:

function foo() {
        this.bar = function() {
            return { subbar: function subbar() {
                return "subbar";
             };
        }
    }
}

或者,您可以只返回不带对象的函数:

function foo() {
    this.bar = function() {
        return function subbar() {
            return "subbar";
         };
    }
}

然后,您将这样调用它: this.bar()()第二组parens调用返回的subbar()函数

由于函数是对象,因此当您调用bar() ,返回值将是函数subbar()

您想要的是返回一个带有附加功能的对象。

function foo() {
  this.bar = function() {
    return {
      subbar: function() {
        return 'subbar';
      }
    };
  };
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM