js代码求解释下面这个例子

<!DOCTYPEhtml><html><head><metacharset="utf-8"><title></title><scripttype="text/javas... <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
function inherit(p){
if(p==null) throw TypeError();
if(Object.create) return Object.create(p);
var t=typeof p;
if(t!=="object"&& t!=="function") throw TypeError();
function f(){};
f.prototype=p;
return new f();
}
function enumeration(namesToValues){
var enumeration=function(){throw "can't instantiate enumeration"};
var proto=enumeration.prototype={
constructor:enumeration,
toString:function(){return this.name;},
valueOf:function(){return this.value;},
toJSON:function(){return this.name;}
};//proto是enumeration的原型
enumeration.values=[];
for(name in namesToValues){
var e=inherit(proto);
e.name=name;
e.value=namesToValues[name];
enumeration[name]=e;
enumeration.values.push(e);
}
enumeration.foreach=function(f,c){
for (var i=0;i<this.values.length;i++)
f.call(c,this.values[i]);
};
return enumeration;
}
var Coin=enumeration({Penny:1,Nickel:5,Dime:10,quarter:25});
var c=Coin.Dime;
console.log(c instanceof Coin);

</script>
</head>
<body>
</body>
</html>
看不太懂这个例子,能解释一下吗?
尤其看不懂这句enumeration[name]=e;的作用
展开
 我来答
pieryon
2017-03-04 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14411 获赞数:166863
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部
enumeration是一个自定义函数,里面的实现继承了protoytpe,重写了constructor和tostring方法,e是一个对象,enumeration是一个枚举类,可以根据索引获取每一个传入对象。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式