在JavaScript对象中包装方法

时间:2013-07-31 12:50:22

标签: javascript

我需要做这样的事情:

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

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

最好的方法是什么?

3 个答案:

答案 0 :(得分:3)

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

var apiWrapper = apiWrapper || (function () {

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

  /* public functions here */
  return {
    init: function (opts) {},
    doSomethingElse: function () {}
  };
})();

答案 1 :(得分:1)

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

<强> apiWrapper.js:

var apiWrapper = apiWrapper || {};

apiWrapper = {
    doSomethingElse: function() {

    },
    init: function(options) {

    }
};

如果你想进行函数链(比如jQuery),只需要在你希望链接的函数末尾return this;

答案 2 :(得分: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>