javascript - 创建新的 JS 库 - 帮助确定基本结构

标签 javascript closures

我正在为一家公司创建一个新库。我遵循的结构是

    (function() {
            var lib = function() {
                    //some private and public fn definitions

                    //setting publically avbl functions
                    return {
                    func1 : func1, func2: func2
                    };
            };
            return (window.lib = lib);
    })();

现在我称之为

    lib.func1();

我希望能够将我的库称为

    lib(function | string | object).someproperty

如何转换我的代码。尝试过类似的事情

    function lib() {
            return new arguments.callee(arguments);
    }

    lib.prototype={
            publicfunc: function() {
            }
    }

在此,我在访问私有(private)函数时遇到一些问题,因为它超出了库原型(prototype)中定义的公共(public)函数的范围。

最佳答案

var lib = (function (param) {

   var func = function () {
     /// your code

     return {
         animate : function () {
          // do the animation
          return this;
     }
   }

   return func;
})();

这可以是基本的 fprmat。

好的,这是我的使用方法。

lib(function() {...});

lib(selectItem).animate();

因为我返回了this,所以我可以运行另一个方法(如果有的话)。

lib(selectItem).animate().animate().animate().animate() ....;

我希望你能找到这种格式的用途,当然我把它做得非常基本

关于javascript - 创建新的 JS 库 - 帮助确定基本结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6382463/

相关文章:

ruby - 为什么 ruby​​ 方法没有词法作用域?

Python:LOAD_FAST 与 LOAD_DEREF 的就地添加

ruby - 在 Ruby 中对实例方法进行猴子修补时注入(inject)外部作用域

javascript - iScroll 5 触控板速度太快

javascript - 单击数据标签时添加输入文本框 d3.js

javascript - 如何从类内部调用的函数返回值

javascript - 无法在 php print 中获得 JavaScript 变量的正确语法

Javascript如何按索引合并数组并将其添加为属性?

python - 在 exec 中用空局部变量列表理解 : NameError

JavaScript 作用域和闭包 : value property does not return incremented value