簡體   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