0

次のようにクラスを設定しています。

var oTest = new TEST();

function TEST() {

  this.String = function(sString) {

    this.Trim = function() {
    }
  }
}

次のように Trim 関数を呼び出せるようにしたいと考えています。

var sTrimmed = oTest.String("  something").Trim();

これは正しいアプローチですか?クラス関数内で関数を実行したことがないので、どんな助けでも大歓迎です。

4

1 に答える 1

1

メソッドをprototypeコンストラクター関数の に追加し、 で実行return this;Stringて同じオブジェクトを返すと、連鎖可能になります。

var oTest = new TEST();

function TEST() {}

TEST.prototype.String = function(aString) {
    this.the_string = aString;
    return this;
};
TEST.prototype.Trim = function() {
    this.the_string = this.the_string.trim();
    return this;
};
TEST.prototype.getString = function() {
    return this.the_string;
};

var sTrimmed = oTest.String("  something")
                    .Trim()
                    .getString();

ライブデモ: http://jsfiddle.net/BcwgC/

于 2012-05-08T12:56:40.140 に答える