1

我为 JavaScript 尝试了不同的混淆工具,但是当我使用结果时它不起作用。

我删除了所有注释,单行和多行注释,并美化了代码以具有正确的分号和正确的格式。

我的问题是:混淆代码之前的先决条件是什么?

4

2 回答 2

0

如果您的代码在调试时没有任何错误或警告,那么它应该进行混淆处理。阅读有关您使用的工具的更多信息,以确保它支持您的 JavaScript 实现。

于 2013-06-07T21:57:26.870 回答
0
  • 确保您的代码在立即调用函数表达式中运行(参见下面的示例)
  • 不要依赖全局变量(或者像下面的 $ 那样显式地传递它们)
  • 使用传入的对象创建任何全局公开的对象/方法(window.somename = {})
  • 在 html 标记中使用事件绑定,而不是 on* 属性。

如果您的代码可以像下面这样相对隔离地运行,它应该能够很好地混淆......

例子:

(function(window, $){
  //your code here

  //create global namespace - expose classes/methods
  window.MyProject = {
    someMethod: someInternalMethodToExpose
    SomeClassName: SomeClass
  };

  //internal stuff
  function someInternalMethodToExpose() {
    ...
  }

  //constructor function
  function SomeClass() {
    ...
  }
  SomeClass.prototype.someMethod = function() {
    ...
  }
}(window || this, jQuery));
于 2013-06-07T22:04:18.507 回答