1.前言

Hash对象大致有如下方法:

1)        clone():复制已有的Hash对象,返回复制产生的新Hash对象。

2)        each(iterator):遍历Hash对象里每个key-value对象的迭代器,其中iterator是一个形如function(pair){}的函数,其中pair就是Hash对象的key-value对象。

3)        get(key):根据key返回value,与Java Map的get()方法基本相似。

4)        inspect():返回字符串显示Hash对象的key-value对,类似于Java Map的toString()方法。

5)        keys():返回Hash对象的全部key组成的数组。

6)        values():返回Hash对象的全部value组成的数组。、

7)        merge(otherHash):将新的Hash对象合并到原有的Hash对象,返回新的Hash对象。

8)        set(key, value):设置一对key-value对,类似于Java Map的put()方法。

9)        toObject():将Hash对象转换成一个JavaScript对象,其实Hash对象和JavaScript都是key-value对,因此可以非常方便地相互转换。

10)    toQueryString():将Hash对象转换成为查询字符串,这种查询字符串以‘key1= value1&key2=value2’的形式出现。

11)    unset(key):删除key所对应的key-value对,执行该方法后返回key所对应的value。

12)    update(object):使用object更新当前Hash对象。

2.例子

<!DOCTYPE html>
<html>
<head><meta name="author" content="OwenWilliam" /><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title> Hash对象 </title>
</head>
<body>
<script src="../../prototype.js" type="text/javascript">
</script>
<script type="text/javascript">
// 定义一个JavaScript对象
var person =
{name:'owen',age:29
};
// 将JavaScript对象转换成Hash对象
var h = $H(person);
// 将Hash对象转换成查询字符串。输出:name=owen&age=29
document.writeln(h.toQueryString() + "<br />");
// 测试merge方法
var person =
{name:'owen',age:29
};
var teacher =
{name:'owen.william',gender:'male'
};
// 将后一个Hash对象merge到前一个Hash对象中
var h = $H(person).merge($H(teacher));
// 输出:name=owen.william&age=29&gender=male
document.writeln(h.toQueryString() + "<br />");
// 直接使用JavaScript对象来更新Hash对象
h.update({age : 30 , subject :"java"});
// 将输出:name=owen.william&age=30&gender=male&subject=java
document.writeln(h.toQueryString() + "<br />");
// 遍历Hash对象的每个key-value对
h.each(function(pair)
{document.writeln(pair.key + "-->" + pair.value + "<br />");
});
</script>
</body>
</html>

3.运行结果

Prototype使用Hash对象相关推荐

  1. 将一个键值对添加入一个对象_细品Redis高性能数据结构之hash对象

    背景 上一节讲Redis的高性能字符串结构SDS,今天我们来看一下redis的hash对象. Hash对象 简介 redis的hash对象有两种编码(底层实现)方式,字典编码和压缩列表编码.在使用字典 ...

  2. 【JavaScript高级教程】JavaScript prototype(原型对象)

    所有的 JavaScript 对象都会从一个 prototype(原型对象)中继承属性和方法. function Person(first, last, age, eyecolor) {this.fi ...

  3. JS中函数的prototype属性和对象的__proto__属性

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  4. Prototype 学习——Function对象

    这个对象就是对function的一些扩充,最重要的当属bind方法,prototype的帮助文档上特意说了一句话:Prototype takes issue with only one aspect ...

  5. prototype是原型对象,那__proto__又是什么呢,总不能是别名吧?

    做过前端的都知道,两个必会的知识就是原型和原型链,如果有人问你,原型是什么?你是不是回答对象中都有一个默认的属性叫prototype,指向的就是原型.如果再追问你,那原型链是什么呢?你是不是回答如果在 ...

  6. prototype 属性重写对象方法和新定义对象方法

    <script> /** * @From: http://www.happyshow.org/article.asp?id=135 * @From: http://www.blueidea ...

  7. 关于JavaScript的Prototype及原型对象的理解

    学习JavaScript时,就一定会涉及到两个概念–prototype,原型对象.自己在做项目时可能无意中使用到,但是却没有真正去了解这个东西,在学会使用的基础上,进一步去理解它会帮助自己吸收到更多不 ...

  8. javascript中对象在OOP方面的一些知识(主要是prototype和__proto__相关)

    1.构造函数(大写函数名  this 无return)   2.原型对象(函数.prototype)  3.实例对象( new出来的东西obj ) 备注:本文举例子都以Fn作为构造函数  Fn.pro ...

  9. 浅谈javascript中原型(prototype)、构造函数、对象实例及三者之间的关系

    转自:http://www.cnblogs.com/zhangwei412827/archive/2012/12/14/2816263.html 浅谈javascript中原型(prototype). ...

  10. JSt中对象的prototype属性

    JSt中对象的prototype属性,是用来返回对象类型原型的引用的.我们使用prototype属性提供对象的类的一组基本功能.并且对象的新实例会"继承"赋予该对象原型的操作.但是 ...

最新文章

  1. Golang库学习笔记 Gin(三)
  2. Gmail技巧之无限别名
  3. Python学习14 模块和包
  4. java.rmi.server.port_java.rmi.server.ExportException: internal error: ObjID already in use报错处理...
  5. java类型转换_Java类型转换
  6. python画画需要什么模块_python实战练手项目---使用turtle模块画奥运五环
  7. Windows Mobile 中怎样获得当前应用程序所在路径
  8. [Linux + 深度学习]Ubuntu18.04 深度学习环境配置
  9. 最速下降法极小化rosenbrock函数 代码_典型算法思想与应用9|分支限界法与电路布线问题
  10. 12.RabbitMQ实战 --- 聪明的Rabbit:扩展RabbitMQ
  11. 汇编语言和C语言的比较
  12. c语言冒泡排序法代码
  13. readelf命令使用说明
  14. Photoshop CC 2020软件安装教程
  15. 几何分布(一种离散分布)
  16. 09.mtk背光流程
  17. java calculator类_java里使用面向对象的思想编写一个计算器类(Calculator),可以实现两个数的加、减、乘、除运算...
  18. 漫谈广告机制设计 | 广告与自然结果的价值评估与利益分配
  19. 配色那么差,还不‘哥屋恩’去看电影!
  20. 【2020】07 留校

热门文章

  1. 51Nod 1509加长棒
  2. VBscript读取excel表,中数据导入到SQLserver数据库里面
  3. numpy中的broadcast
  4. CentOS系统启动过程1-10 详细叙述
  5. 黑马程序员之在Mac系统上安装Tomcat
  6. linux下的工作目录切换实现
  7. Security+ 学习笔记24 数据中心防护
  8. ELK详解(十九)——Kibana绘图展示
  9. Linux查看系统版本命令 linux学习教程
  10. Android N代码暗示隐藏的“多窗口”模式