我正在尝试学习 js 并尝试扩展 Map
。我做了:
function mapExtend(mapInstance) {
function MapExtend(){
}
MapExtend.prototype = Object.create(Map.prototype);
MapExtend.prototype.constructor = MapExtend;
return new MapExtend(mapInstance)
}
我这样做了:
const b = new Map()
mapExtend(b).get(1)
我收到以下错误:
Uncaught TypeError: Method Map.prototype.get called on incompatible receiver #<MapExtend>
at MapExtend.get (<anonymous>)
at <anonymous>:1:14
我在这里犯了什么错误?
最佳答案
我现在不能给你解释,因为我需要先验证我的假设。
但是可以使用 ES6 语法进行扩展:
function mapExtend(mapInstance) {
class MapExtend extends Map {}
return new MapExtend(mapInstance)
}
const b = new Map()
mapExtend(b).get(1)
关于javascript - 如何在js中扩展 map ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52015305/