在运行某个特定功能时,我不断收到这些奇怪的错误,我无法弄明白。这是设置。
MyObject.prototype._activate = function() {
...
}
...
encode = function(data) {
var str;
str = data.map(function(d) {
return String.fromCharCode(d)
}).join("");
return btoa(str).replace(/.{76}(?=.)/g, '$&\n');
}
var mystring = encode(somedata);
错误发生在data.map行上,它是:
未捕获TypeError:对象ReferenceError:未定义_activate没有方法'map'
当然,MyObject与编码方法完全无关。我在data.map上设置了断点,数据是一个数组。它与MyObject或_activate无关,所以我想知道在报告错误或发生的事情时这是否是Chrome错误。
编辑:更多信息。我的代码中也有这个:
var instance = new MyObject();
var encoded = encode(somedata);
instance.load(encoded);
如果我注释掉行instance.load(编码),我没有收到错误。它让我觉得encode()没有同步发生......
答案 0 :(得分:0)
在JavaScript中,数组和对象通常是可互换的,例如以下内容应该相同:
alert(a.mem);
alert(a["mem"]);
鉴于正在调用map
函数,无论如何,我希望data
在概念上是一个数组。
Map was impletemented in JavaScript 1.6 and standardised ECMA 5所以我希望browser support for it to be limited(在撰写本文时)。
可能是这些限制的副作用导致了这一点。