一般Javascript书在讲解对象时,都指出Javascript中的对象可以作为哈希表,存储键值数据。通常情况下,键为字符串,如果键是数字的话,实际上在内部也会转换为字符串。

比如

var o = {name: 'zzy',5: 'honghu'
};

那么可以测试 o[5] 或 o['5'] 的值都是 'honghu'

那么是不是意味着 对象的键只能为字符串呢?

由此我们定义一个函数

function f() {return 'function';
}

然后定义 o[f] = 40;

通过 alert 输出 f 和 o[f] 可以看到, f 为函数, o[f] 为 40.

为了进一步确认 o 中键值对的情况,可以通过

for(var k in o) {alert(k);alert(o[k]);
}

以下是测试网页代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>Function as the Key of a object</title>
</head>
<body><p>将函数作为对象的Key,存储值</p><script type="text/javascript">function f() {return 'function';}var o = {name: 'zzy',5: 'honghu'};o[f] = 40;alert(f);alert(o[f]);for(var k in o) {alert(k);alert(o[k]);}</script>
</body>
</html>

结论: 函数可以作为 Javascript对象的键。

还是把自己坑了,函数可以作为 Javascript 对象的键,是因为在内部已经转换为了字符串!!!

转载于:https://www.cnblogs.com/zhenyu-whu/p/3277389.html

函数可以作为Javascript对象(哈希表)的键吗相关推荐

  1. JavaScript 实现哈希表

    JavaScript 实现哈希表 源码地址 目录 JavaScript 实现哈希表 一.哈希表简介 1.1.认识哈希表 1.2.哈希化的方式 1.3.解决冲突的方法 1.4.寻找空白单元格的方式 线性 ...

  2. 【C++】【哈希表】【哈希函数】实现自己的哈希表,解决哈希冲突;动态哈希表;

    文章目录 前言 1.哈希表与哈希函数的引入 2.哈希表 3.哈希表优劣 一.设计 1.一般.通用哈希函数的设计 2.默认哈希函数 二.哈希冲突 1.链地址法.(seperate chaining ) ...

  3. 详解JavaScript实现哈希表

    哈希表原理 哈希表是一种非常重要的数据结构,几乎所有的编程语言都有直接或者间接的应用这种数据结构,它通常是基于数组实现的. 相对于数组,它有更多的优势 它可以提供非常快速的插入-删除-查找操作. 哈希 ...

  4. 每日一题之对象哈希表

    给定一个字符串 s 和一些 长度相同 的单词 words .找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置. 注意子串要与 words 中的单词完全匹配,中间不能有其他字符 , ...

  5. JavaScript数据结构之 —— 08哈希表

    散列算法(也就是哈希)的作用是尽可能快地在数据结构中找到一个值.在之前如果要在数据结构中获得一个值(使用get方法),需要遍历整个数据结构来找到它. 所有元素根据和该元素对应的键,保存在数组的特定位置 ...

  6. C++ 哈希表查询_进入哈希函数结界的世界

    1. 前言 哈希表或称为散列表,是一种常见的.使用频率非常高的数据存储方案. 哈希表属于抽象数据结构,需要开发者按哈希表数据结构的存储要求进行 API 定制,对于大部分高级语言而言,都会提供已经实现好 ...

  7. JavaScript的JSON转变函数parse[转化为对象] stringfy[转化为字符串]

    创建一个对象数组:使用parse会把字符串转化为对象 var sites = [{ "name":"runoob", "url":" ...

  8. 10_JavaScript数据结构与算法(十)哈希表

    JavaScript 数据结构与算法(十)哈希表 认识哈希表 哈希表是一种非常重要的数据结构,几乎所有的编程语言都直接或者间接应用这种数据结构. 哈希表通常是基于数组实现的,但是相对于数组,它存在更多 ...

  9. 趣味算法——探索哈希表的神秘世界

    文章目录 前言: 一.哈希表的魔力 二.哈希表的灵魂--哈希函数 1. 什么是哈希函数 2. 哈希函数的特性 3. 哈希冲突 三.解决冲突的艺术 1. 开放寻址法 2. 链地址法 3. 冲突解决策略的 ...

  10. 制作销售属性的组合的集合为哈希表,根据用户点击的属性组合判断某个skuId并跳转到对应的页面

    一.查询spu系列商品: 1.查询spu系列商品中所有属性值之间的组合(一个组合,即一个sku商品)!!! 这里的数据苹果11 颜色:黑色.白色.红色: 版本:128G.256G: 总共6种组合: S ...

最新文章

  1. 013_html水平线
  2. it is likely that the remote side declared peer gone on this jvm
  3. vuex ajax dev,vuex中使用ajax的话如何维护状态?
  4. LeetCode刷题实战(2):Add Two Numbers
  5. 文件和异常 Python
  6. 应用程序进程启动过程
  7. 1014.修改clion的工具链
  8. VMware vCenter 资源池
  9. 美国《国家地理》:年度十大新闻
  10. kafka测试工具_kafka压测工具:同步方式2000+、异步方式10000+、带源码
  11. VS2010与.NET4系列 13. ASP.NET 4 SEO 改进
  12. spring事件监听器系列二:@EventListener注解原理
  13. 【工具】js脚本下载百度文库生成word文本 + python爬取百度文库
  14. Android mc怎么和win10联机,我的世界手机版与win10版联机可完美互通
  15. python教孩子学编程_学编程要从娃娃抓起——教孩子学Python
  16. 数据分析师岗位要求案例分析
  17. 【视频编码】【Vue】【明星开源项目】| Chat · 预告
  18. 快来喝杯Java(初级第一章)
  19. 遗传算法入门(连载之十) 神经网络入门(连载预告)
  20. 单片机中动态数码管闪烁问题

热门文章

  1. 简单的实现了Dijkstra,
  2. 【OpenCV入门指南】第六篇 轮廓检测 下
  3. 基础知识:Mac上更改“字体”窗口中的字体大小
  4. setContentView是如何把布局加上去的
  5. CodeForces405B - Jzzhu and Sequences 矩阵快速幂
  6. iOS底层探索之Block(三)——Block的本质
  7. iOS 应用的启动流程和优化详解
  8. Word文档恢复软件推荐
  9. bug宝典linux篇 LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory(转)
  10. nfs文件共享服务器搭建详解