0

オブジェクトを一度に作成して初期化しようとしています。だからこれをする代わりに

var a = function(){};

a.prototype.blah = function(){return "blah"};

var b  = new a();

これを使いたいです。

var a = function(){
    return new function init() {
      this.extend = init.prototype;
      this.creator = "Levi";
      this.create = function(){
          return new init();
      }
      // other stuff
    };
  }();

  a.extend.blah = function(){return "blah";};

これを行うためのより良い方法はありますか?私はreturn new function自分のコードでの使用について特に確信がありません。ありがとう!

編集:明確にするために、これをオブジェクトプロトタイプの一種のラッパーとして使用したいので、このようなオブジェクトリテラルは使用しませんvar a = {extend: "",creator: "Levi"}

4

1 に答える 1

0

1 つの代替案は次のとおりです。

var a = (function(){

  var A = function() {
    this.creator = "Levi";
  }

  A.prototype.blah = function() {
    return "blah"
  };

  return new A;

})();

これは、ワンショット オブジェクトに役立つ場合がありますA

于 2012-11-23T08:00:16.037 に答える