ES6 Map, showing exception intermittently , Uncaught TypeError: map.put is not a function
ES6 Map, showing exception intermittently , Uncaught TypeError: map.put is not a function
几周前 map.put 曾经工作,但现在我们间歇性地收到此错误消息:
var mapTypeSubtype = new Map();
Uncaught TypeError: mapTypeSubtype.put is not a function
at Test.js:411
at Array.forEach (<anonymous>)
at objGenericListener (Test.js:410)
这是 Javascript api 方面的问题吗?我看了文档,没有.put
这样的方法,改成.set
。但是奇怪的是,它曾经毫无问题地投入使用,但现在它断断续续地工作。有什么建议么?将其更改为 .set
这对我们来说是一个很大的改变,因为我们在项目中的许多地方都使用了地图。
更新
从引入 put 方法的地方进行了大量搜索后,我看到有一个 js 被加载到 salesforce
内部的浏览器中。这是在那里面定义的。
Map.prototype.put = function(a, b) {
a && "undefined" != typeof b && (a in this.map || this.size++,
this.map[a] = b)
}
所以我认为这有时可能无法加载,这会破坏我们的实现。
谢谢
如您所知,在 Map
class 中没有任何 put
方法,正如@Mahendra Pratap 提到的
ES6
文档 (https://www.ecma-international.org/ecma-262/6.0/#sec-map-constructor).
在使用 Map
之前,您可以 运行 类似下面的脚本来防止重构您的项目:
Map.prototype.put = function(key, value){
return this.set(key, value);
}
More details
关于您的代码为何有效的一些猜测:
- 也许在您的项目或包含的库中有
Map.prototype.put
。
HashMap
中有put
方法,java
中有class方法,javascript
中没有。确保您使用的是 javascript
.
- 您可以在 javascript 中找到
HashMap
的一些实现:JavaScript Hashmap Equivalent
几周前 map.put 曾经工作,但现在我们间歇性地收到此错误消息:
var mapTypeSubtype = new Map();
Uncaught TypeError: mapTypeSubtype.put is not a function
at Test.js:411
at Array.forEach (<anonymous>)
at objGenericListener (Test.js:410)
这是 Javascript api 方面的问题吗?我看了文档,没有.put
这样的方法,改成.set
。但是奇怪的是,它曾经毫无问题地投入使用,但现在它断断续续地工作。有什么建议么?将其更改为 .set
这对我们来说是一个很大的改变,因为我们在项目中的许多地方都使用了地图。
更新
从引入 put 方法的地方进行了大量搜索后,我看到有一个 js 被加载到 salesforce
内部的浏览器中。这是在那里面定义的。
Map.prototype.put = function(a, b) {
a && "undefined" != typeof b && (a in this.map || this.size++,
this.map[a] = b)
}
所以我认为这有时可能无法加载,这会破坏我们的实现。
谢谢
如您所知,在 Map
class 中没有任何 put
方法,正如@Mahendra Pratap 提到的
ES6
文档 (https://www.ecma-international.org/ecma-262/6.0/#sec-map-constructor).
在使用 Map
之前,您可以 运行 类似下面的脚本来防止重构您的项目:
Map.prototype.put = function(key, value){
return this.set(key, value);
}
More details
关于您的代码为何有效的一些猜测:
- 也许在您的项目或包含的库中有
Map.prototype.put
。 HashMap
中有put
方法,java
中有class方法,javascript
中没有。确保您使用的是javascript
.- 您可以在 javascript 中找到
HashMap
的一些实现:JavaScript Hashmap Equivalent