1

我需要做这样的事情:

<script src="apiWrapper.js"></script>
<script>
  apiWrapper.init('api_key');
  apiWrapper.doSomethingElse();
</script>

本质上,在页面中有一个单例样式对象,我也可以添加方法和属性,并且可以从页面中的任何位置使用。

最好的方法是什么?

4

3 回答 3

3

您可以使用这种方法(它为您提供了一种拥有私有属性/功能的方法):

var apiWrapper = apiWrapper || (function () {

  /* private functions here */
  var privateFunction = function () {
  }

  /* public functions here */
  return {
    init: function (opts) {},
    doSomethingElse: function () {}
  };
})();
于 2013-07-31T12:53:10.593 回答
1

我也将这种结构用于我的脚本:

apiWrapper.js:

var apiWrapper = apiWrapper || {};

apiWrapper = {
    doSomethingElse: function() {

    },
    init: function(options) {

    }
};

如果你想做函数链接(如 jQuery),只需return this;在你希望链接的函数的末尾。

于 2013-07-31T12:53:19.297 回答
0
<script>
...
    // create your singleton in the global scope
    if(!("apiWrapper" in window))
        window.apiWrapper = {};
    ...
    // use your singleton object
    apiWrapper.init = function() {...};
    apiWrapper.prop = 123;
    ...
    apiWrapper.init();
</script>
于 2013-07-31T13:01:22.793 回答