Hash.toQueryString - Prototype JavaScript 框架

Xunxin Prototype API

toQueryString
1.6 改进

toQueryString() -> String

将一个 hash 转换为 URL 编码字符串形式。

这是一种串行化的形式,常用于提供复合的参数集,例如为 Ajax 命名空间中的那些对象提供参数(如 Ajax.Requestparameters 选项)。

值为 undefined 的“键/值”对串行化后只保留了键名称。值为数组的“键/值”对会将数组的每个元素串行化为一个键值对。 所有的值都会使用 JavaScript 原生的 encodeURIComponent 方法获取 URI 编码。

除数组外(数组是按照元素在数组中的顺序进行串行化的),串行化后键值对的顺序并不保证总是一致的 (并且通常情况下查询字符串中键值对的顺序也是无关紧要的)。

样例

$H({ action: 'ship', order_id: 123, fees: ['f1', 'f2'], 'label': 'a demo' }).toQueryString() 
// -> 'action=shipℴ_id=123&fees;=f1&fees;=f2&label;=a%20demo'
// 一个空的 hash 是一个空的查询字符串: 
$H().toQueryString() 
// -> ''

译注:一些特殊值的串行化:

var hash = new Hash({a: 'aa', b: null, c: undefined, d: 'dd'});
hash.toQueryString()
// -> 'a=aa&b;=&c;&d;=dd'

不能再将 Hash.toQueryString(obj) 作为类方法使用,只能作为一个实例方法,或者用 Object.toQueryString 来代替。