1

我创建了以下 jQuery OOP 代码

(function ($) {

    example = {
      method1 : function()  {},
      method2   : function()  {}        
    };


})(jQuery);

我不想init()在准备好的文档上使用和调用一些方法。有没有办法以文字表示法执行/运行对象?我使用过var example = new Object();,但出现错误,我只需要与对象关联的所有方法都准备好运行。

4

2 回答 2

2

这会做到的:)

(function ($) {

    // define some methods
    var example = {
      method1: function() { console.log(1); },
      method2: function() { console.log(2); }        
    };

    // run all methods in example
    for (var m in example) {
      if (example.hasOwnProperty(m) && typeof example[m] === "function") {
        example[m]();
      }
    }

    // => 1
    // => 2

})(jQuery);

如果你想使用new诸如

var example = new Example();
// => "A"
// => "B"

你可以做这样的事情

(function($) {

  var Example = function() {
    this.initializeA();
    this.initializeB();  
  };

  Example.prototype.initializeA = function() {
    console.log('A');
  }

  Example.prototype.initializeB = function() {
    console.log('B');
  };

  // init
  new Example();
  // => "A"
  // => "B"

})(jQuery);
于 2013-06-27T02:42:29.750 回答
1

也许这就是你要找的?

(function ($) {

    example = (function() {alert("some code")})();
    //or
    (function() {alert("some other code")})();
    //or
    alert("even more code");

})(jQuery);
于 2013-06-27T02:37:53.403 回答