gpt4 book ai didi

javascript - 未捕获类型错误 : undefined is not a function while creating an object

转载 作者:行者123 更新时间:2023-12-03 04:55:46 25 4
gpt4 key购买 nike

Base64.js

var Base64 = {
_keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
encode: function(e) {
var t = "";
var n, r, i, s, o, u, a;
var f = 0;
e = Base64._utf8_encode(e);
while (f < e.length) {
n = e.charCodeAt(f++);
r = e.charCodeAt(f++);
i = e.charCodeAt(f++);
s = n >> 2;
o = (n & 3) << 4 | r >> 4;
u = (r & 15) << 2 | i >> 6;
a = i & 63;
if (isNaN(r)) {
u = a = 64
} else if (isNaN(i)) {
a = 64
}
t = t + this._keyStr.charAt(s) + this._keyStr.charAt(o) + this._keyStr.charAt(u) + this._keyStr.charAt(a)
}
return t
}
}

我正在从另一个文件调用编码方法,如下所示 已导入 base64.js 文件并创建对象

Var base64=new Base64.encode(input);

错误:

Uncaught Type error: undefined is not a function

有人可以帮忙吗?

最佳答案

代码中的错误:

  1. Var 应该是 var
  2. _utf8_encode 未定义。
  3. 您正在返回编码字符串。您不需要创建对象。只需执行 var编码Str = Base64.encode(input)
  4. 在这一行

    t = t + this._keyStr.charAt(s) + this._keyStr.charAt(o) + this._keyStr.charAt(u) + this._keyStr.charAt(a)

    在你的原始代码中,this指的是由new创建的对象,而不是Base64,所以this._keyStr未定义。但如果您直接调用 Base64.encode() (上面#3),它将引用 Base64 并且您将获得正确的值。

var Base64 = {
_keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
encode: function(e) {
var t = "";
var n, r, i, s, o, u, a;
var f = 0;
e = Base64._utf8_encode(e);
while (f < e.length) {
n = e.charCodeAt(f++);
r = e.charCodeAt(f++);
i = e.charCodeAt(f++);
s = n >> 2;
o = (n & 3) << 4 | r >> 4;
u = (r & 15) << 2 | i >> 6;
a = i & 63;
if (isNaN(r)) {
u = a = 64
} else if (isNaN(i)) {
a = 64
}
t = t + this._keyStr.charAt(s) + this._keyStr.charAt(o) + this._keyStr.charAt(u) + this._keyStr.charAt(a)
}
return t
},
_utf8_encode: function(e) {
// do your processing
return e
}
}

var input = "Hello World";
var base64 = Base64.encode(input);
console.log(base64)

Rectified JSFiddle

注意:我已经定义了_utf8_encode,但它返回相同的文本。请添加必要的代码。

关于javascript - 未捕获类型错误 : undefined is not a function while creating an object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42435276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com