JS模拟索引器

<!DOCTYPE html>
<html>
<body>

<script>

  var e1 = { id: 1, name: 'a' };
  var e2 = { id: 2, name: 'b' };
  var e3 = { id: 3, name: 'c' };

  var arr = [ e1, e2, e3 ];

  function IndexedObj(arr){
    var obj = new Object();
    arr.forEach(function(e){
      obj[e.id] = e;
    });
    return obj;
  }

  var ind = new IndexedObj(arr);

  document.write(ind[1].name); // output: 'a'

</script>

</body>
</html>

JavaScript是基于对象的语言,不是面向对象的语言(呵呵,我也傻傻分不清楚)。在JavaScript里,是没有索引器的。不过,基于其语法特性,我们可以模拟面向对象语言中的某些语法(糖)。JavaScript是一门非常灵活而优美的语言(当然也比较任性,你可以随便定义一个东西,然后去继承它的特性,我把它称为“无级抽象”,就像无级缩放一样),可以充分发挥我们的创造性。——似乎,我应该先讲讲如何模拟“类”的,但是这类技术文章很多,比如《面向对象的JavaScript——类》,就不费口舌了。毕竟,我也只是初学者嘛,谦虚很重要!

转载于:https://my.oschina.net/HangXiaoZhuOSZone/blog/875118

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值