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

一种替代方法可以是:

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 回答