javascript闭包里的函数调用问题 本帖最后由 tangzhen0552 于 2014-05-14 09:16:41 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var window = window || {}; (function w() { if (typeof RSAUtils === 'undefined')/////////这里多了个空格 var RSAUtils = window.RSAUtils = {}; //做成全局变量,要不只能在w内部访问 var RSAKeyPair = function (encryptionExponent, decryptionExponent, modulus) { var dmath = RSAUtils; this.e = dmath.biFromHex(encryptionExponent); this.d = dmath.biFromHex(decryptionExponent); this.m = dmath.biFromHex(modulus); this.chunkSize = 2 * dmath.biHighIndex(this.m); this.radix = 16; this.barrett = new BarrettMu(this.m); }; RSAUtils.getKeyPair = function (encryptionExponent, decryptionExponent, modulus) { return new RSAKeyPair(encryptionExponent, decryptionExponent, modulus); }; RSAUtils.encryptedString = function (key, s) { var a = []; var sl = s.length; var i = 0; while (i < sl) { a = s.charCodeAt(i); i++; } while (a.length % key.chunkSize != 0) { a[i++] = 0; } var al = a.length; var result = ""; var j, k, block; for (i = 0; i < al; i += key.chunkSize) { block = new BigInt(); j = 0; for (k = i; k < i + key.chunkSize; ++j) { block.digits[j] = a[k++]; block.digits[j] += a[k++] << 8; } var crypt = key.barrett.powMod(block, key.e); var text = key.radix == 16 ? RSAUtils.biToHex(crypt) : RSAUtils.biToString(crypt, key.radix); result += text + " "; } return result.substring(0, result.length - 1); // Remove last space. }; //RSAUtils.setMaxDigits(130);//////你的这个方法也没定义,不知道你在其他地方定义过没有 })(window); RSAUtils.getKeyPair() RSAUtils.encryptedString() if (typeof RSAUtils === ' undefined') //多了空格,而且总会是truevar RSAUtils = RSAUtils = {}; 这两条语句相当于var RSAUtils;if(typeof RSAUtils === 'undefined') RSAUtils=window.RSAUtils={}在RSAUtils.setMaxDigits (130);语句后添加window.RSAUtils=RSAUtils试试 jquery 想在网页中间用弹出遮罩层,层中加载一个页面,该如何实现呢? JS图片循环 如何去掉IE的自动搜索 哪位大侠帮我把这个下拉树放到panel中 谢谢了 刚刚学习JS,写的程序找不到错误,请高手帮忙 js如何判断星期几然后显示不同图片 在IE7里面,如果用Javascript 代码关闭父窗口,如何不让IE7弹出是否要关闭的提示框, 如何在既定的表格中设计垂直滚动字幕效果 数状结构!!!紧急? jquery 表单验证先后顺序的问题 在js中写java小脚本,怎么在java小脚本中获取js变量的值 富文本插件CKEDITOR,产生事件后会产生全选效果
(function w() {
if (typeof RSAUtils === 'undefined')/////////这里多了个空格
var RSAUtils = window.RSAUtils = {}; //做成全局变量,要不只能在w内部访问
var RSAKeyPair = function (encryptionExponent, decryptionExponent, modulus) {
var dmath = RSAUtils;
this.e = dmath.biFromHex(encryptionExponent);
this.d = dmath.biFromHex(decryptionExponent);
this.m = dmath.biFromHex(modulus);
this.chunkSize = 2 * dmath.biHighIndex(this.m);
this.radix = 16;
this.barrett = new BarrettMu(this.m);
};
RSAUtils.getKeyPair = function (encryptionExponent, decryptionExponent, modulus) {
return new RSAKeyPair(encryptionExponent, decryptionExponent, modulus);
};
RSAUtils.encryptedString = function (key, s) {
var a = [];
var sl = s.length;
var i = 0;
while (i < sl) {
a = s.charCodeAt(i);
i++;
}
while (a.length % key.chunkSize != 0) {
a[i++] = 0;
}
var al = a.length;
var result = "";
var j, k, block;
for (i = 0; i < al; i += key.chunkSize) {
block = new BigInt();
j = 0;
for (k = i; k < i + key.chunkSize; ++j) {
block.digits[j] = a[k++];
block.digits[j] += a[k++] << 8;
}
var crypt = key.barrett.powMod(block, key.e);
var text = key.radix == 16 ? RSAUtils.biToHex(crypt) : RSAUtils.biToString(crypt, key.radix);
result += text + " ";
}
return result.substring(0, result.length - 1); // Remove last space.
};
//RSAUtils.setMaxDigits(130);//////你的这个方法也没定义,不知道你在其他地方定义过没有
})(window);
RSAUtils.getKeyPair()
RSAUtils.encryptedString()
var RSAUtils = RSAUtils = {};
这两条语句相当于
var RSAUtils;
if(typeof RSAUtils === 'undefined')
RSAUtils=window.RSAUtils={}在RSAUtils.setMaxDigits (130);语句后添加
window.RSAUtils=RSAUtils试试