如何打包javascript代码供他人使用

时间:2014-02-04 16:11:59

标签: javascript package

封装一些javascript的最佳方法是什么,以便其他人可以将其添加到他们的项目中,而不必担心破坏变量等?我看了一下jQuery源代码,看看它是如何完成的;它们似乎只是在最后将所有内容附加到window对象上。所以,这是做某些事情的首选方式:

(function(w) {
    // constructor
    var MyCode = function() {
       // my code
    }
    w.MyCode = MyCode;
}(window));

我还能如何分割我的代码并允许它安全地插入其他人的现有代码?

2 个答案:

答案 0 :(得分:0)

如果您希望您的库与JQuery一起使用,您可以考虑编写Jquery插件。

这是官方指南。 http://learn.jquery.com/plugins/basic-plugin-creation/

答案 1 :(得分:0)

  1. 如果您的变量是在函数内声明的,请不要担心:它们已被封装。
  2. 如果你使用了一些全局变量并且你真的需要它(不知道为什么你需要它们) - 用一些不可重复的名称创建一个对象并将所有变量放在里面,
  3.  var myobjectsdfjhgsdfjhgdsfjhgkjfgnalkcnkabvakbvkjladfv = { myGlobal1: "1", ... }
    

    修改

    好的,一些新的要求......

    用户重用您的变量,请创建一个类/对象:

    function myClass() {
      this.myVariableToShare = 1;
    
      this.myMethod = function() {
        this.myVariableToShare ++;
      }
    }
    
    var myObjectOfMyClass = new myClass();
    

    然后你可以对用户说:“嘿,使用这个对象!”。他可以这样做:

    alert(myObjectOfMyClass.myVariableToShare);
    

    myObjectOfMyClass.myMethod();
    alert(myObjectOfMyClass.myVariableToShare);
    

    这就是通常实现库的方式。

    您也可以采用其他方式:只需在代码的开头创建一个全局变量列表:

    var myVariable = 1;
    

    然后它在每个函数中都可见(当然,如果它没有像里面那样的变量)。但是我更喜欢这个对象,因为你拥有一个包内的所有内容,用户不怕使用他想要的名字作为他的变量。

    我希望这能回答你的问题。