文档章节

JS模拟索引器

夯小猪
 夯小猪
发布于 2017/04/07 22:52
字数 312
阅读 45
收藏 0
<!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——类》,就不费口舌了。毕竟,我也只是初学者嘛,谦虚很重要!

© 著作权归作者所有

共有 人打赏支持
夯小猪
粉丝 2
博文 15
码字总数 23145
作品 0
成都
高级程序员
私信 提问
Pholcus 0.7.4 发布,Go 爬虫软件

Pholcus 0.7.4 发布,更新如下: Spider中添加Namespace func(*Spider) string与SubNamespace func(self *Spider, dataCell map[string]interface{}) string两个字段,实现自定义数据库、表单......

oschina
2015/11/11
1K
0
一个App完成入门篇(六)- 完成通讯录页面

第五章和第六章间隔时间有点长,对不起大家了。下面继续。 本节教程将要教会大家如何加载本地通讯录。 导入项目 导入通讯录 自定义js模块 发送和订阅page消息 将要学习的demo效果图如下所示 ...

jonh_felix
2016/04/22
837
0
JavaScript和Lua的类继承

javascript 本身虽是一门面向对象的编程语言, 但并没有明确提供继承方式.二十多年间,众多高手提供很多模拟继承的实现, 主要的有:对象冒充,call/apply,prototype,以及深复制等. 网上有很多此类...

南苑听风
2014/10/31
0
3
使用scrapy的定制爬虫-第三章-爬虫的javascript支持

-.-编辑中.我语文是数学老师教的... 后续补充参考代码,链接. 很多网站都使用javascript...网页内容由js动态生成,一些js事件触发的页面内容变化,链接打开.甚至有些网站在没有js的情况下根本不...

斑ban
2013/04/04
0
4
使用面向对象技术创建高级Web应用程序

最近,我面试了一位具有5年Web应用开发经验的软件开发人员。她有4年半的JavaScript编程经验,自认为自己具有非常优秀的JavaScript技能,可是,随后我很快发现,实际上她对JavaScript却知之甚...

时过境迁_
2013/06/20
11.7K
41

没有更多内容

加载失败,请刷新页面

加载更多

Python中判断字符串是否包含中文

Python import reRE = re.compile(u'[\u4e00-\u9fa5]', re.UNICODE)match = re.search(RE, str)if match is None:# 没有包含中文字符 参考 Python regular expressions return true/f......

亚林瓜子
3分钟前
0
0
《CNCF × Alibaba 云原生技术公开课》正式首播

《CNCF × Alibaba 云原生技术公开课》立即观看:点击立即观看 云原生最初来描述云上应用的典型架构与特性,随着容器、Kubernetes、Serverless、FaaS技术的演进,CNCF(云原生计算基金会)把...

mcy0425
3分钟前
0
0
网站漏洞如何修复网站程序问题

jeecms 最近被爆出高危网站漏洞,可以导致网站被上传webshell木马文件,受影响的版本是jeecms V6.0版本到jeecmsV7.0版本。该网站系统采用的是JAVA语言开发,数据库使用的是oracle,mysql,sql数...

网站安全
7分钟前
0
0
git 中“warning: CRLF will be replaced by LF in”解决方案

https://stackoverflow.com/questions/5834014/lf-will-be-replaced-by-crlf-in-git-what-is-that-and-is-it-important...

qwfys
11分钟前
0
0
Spring Boot配置ssl证书启用HTTPS协议

一 、点睛 SSL是为网络通信提供安全及数据完整性的一种安全协议,SSL在网络传输层对网络连接进行加密。SSL协议位于TCP/IP协议和各种应用层协议之间,为数据通信提供安全支持。 SSL协议分为两...

故久呵呵
13分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部