0x0、xxxx is not defined 谬误起因及解决办法

首先提醒 xxxx is not defined 就是示意未定义。

产生起因:

如果你确定加密之前曾经定义了这个“变量名”或者“办法名”,那应该是加密后“变量名/办法名”曾经产生扭转,导致内部调用的时候找不到这个“办法名/变量名”,才会出谬误。

如原来函数(办法)为:

function test(){  //todo }

加密后函数(办法)可能为:

function _0xaoem(){  //todo }

这个时候你去调用 “test” 那必定是未定义(test  is not defined)。解决办法:1.采纳 最牛加密V6版本 ,保留 “变量名/办法名” 办法。

如办法名或者变量名为 “test” ,那就这么增加即可。更多规定请点击对应前面的“?”符号能够看到具体的规定。这样加密后,这个“变量名/办法名”不会产生扭转。就不会呈现这个谬误问题。2.晋升作用域。原来函数书写:

function test(){  //todo }

改成:

test = function(){  //todo }// or window.test = function(){  //todo }

这样轻易怎么加密,这个 test 办法会始终存在,并且调用不会呈现test is not defined。

3.正确的书写(采纳闭包)

咱们都见过jquery,jquery就是采纳闭包的形式书写。

简略来讲就是私有化所有办法(函数)和变量,而后提供公共拜访形式。

咱们打个样:

(function(w) {    //定义私有化对象    var T = {};    //绑定办法    T.test = function(){        //todo     }    //提供公共拜访形式    w.T = T;})(window);//调用testT.test();

这样轻易怎么加密,您前面都能够应用 T 来调用绑定在T下面的办法(函数)及变量。

结语:

其实当咱们在写代码的时候就要思考到这些,不便前面本人调用或者其他人的应用。所以从开始就要布局怎么写适合。而不是上来就干,谁都不爽。