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

Javascript 如何通过构造函数在另一个对象下设置对象,javascript,class,object,inheritance,constructor,Javascript,Class,Object,Inheritance,Constructor,我有一个建筑工,就是这样 function foo() { this.bar = function() { return "fubar"; } } 当我调用newfoo().bar()时,这里没有问题 但是如果我想做这样的东西 function foo() { this.bar = function() { function subbar() { return "subbar"; };

我有一个建筑工,就是这样

function foo() {
    this.bar = function() {
         return "fubar";
    }
}
当我调用
newfoo().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";
         };
    }
}

如何访问subbar,如
new foo().bar().subbar()

您想要的是返回一个附加了函数的对象

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

您想要的是返回一个附加了函数的对象

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

只需返回具有最内部函数的对象:

function foo() {
        this.bar = function() {
            return { subbar: function subbar() {
                return "subbar";
             };
        }
    }
}
或者,您可以只返回不带对象的函数:

function foo() {
    this.bar = function() {
        return function subbar() {
            return "subbar";
         };
    }
}
然后您可以这样调用它:
this.bar()
第二组参数调用返回的
subbar()
函数


由于函数是对象,因此当调用
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()
第二组参数调用返回的
subbar()
函数


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

您希望发生什么?最后两个是无效语法。我希望像nerw foo().bar().subbar()一样到达subbar(),就像在许多本机函数中一样。答案都是正确的,您必须在返回时公开它,我建议你看看JS中的模块模式:如果没有更多关于你想要实现的预期行为的信息,很难回答……我真的不明白为什么这个问题会被忽略,你期望发生什么?最后两个是无效语法。我希望像nerw foo().bar().subbar()一样到达subbar(),就像在许多本机函数中一样。答案都是正确的,您必须在返回时公开它,我建议你看看JS中的模块模式:如果没有更多关于你想要实现的预期行为的信息,很难回答……我真的不明白为什么这个问题会被忽略