absolutize [不推荐]
absolutize(element)
转换元素的定位方式为绝对定位,并且不改变元素在页面中的位置。
译注:该方法使用代码 element.style.position = 'absolute' 改变定位方式。在改变定位方式后, 元素左上角的坐标仍会保持原来的位置,如果元素未设置初始的 width 和 height 属性,则调用该方法后, 元素的宽度和高度会改变为系统预设值。
已被 Element#absolutize 方法取代。
从 Prototype 1.6 开始,Position 对象已经完全被 Element 对象的相关方法所取代。
Position 对象提供了一系列方法用于解决 DOM 元素的位置和布局方面的问题。它主要是给第三方的 UI 库如 script.aculo.us 使用的。
方法
absolutize [不推荐]
absolutize(element)
转换元素的定位方式为绝对定位,并且不改变元素在页面中的位置。
译注:该方法使用代码 element.style.position = 'absolute' 改变定位方式。在改变定位方式后, 元素左上角的坐标仍会保持原来的位置,如果元素未设置初始的 width 和 height 属性,则调用该方法后, 元素的宽度和高度会改变为系统预设值。
clone  ...
这是一个简单实用的工具,用于定期执行一个指定的函数。从本质上来说,它是封装原生 Window 对象的 setInterval/clearInterval 机制。
PeriodicalExecuter 具有一项值得注意的非常有用的特性:它会阻止回调函数的多次并发执行, 并顺延执行的时间间隔(它维护一个内部的运行标志,用于屏蔽回调函数运行时的产生的异常)。如果需要定时与用户进行交互 (如使用一个 prompt 或 confirm),这非常有用,它将会避免在等待响应时产生多个信息框。
当然,当前一个非常好的观点是:应尽量使用一个实际的对象,而不是维护一个全局的定时器句柄。这也算是 PeriodicalExecuter 的一项优势吧。
创建 PeriodicalExecuter 对象
PeriodicalExe...
values
Object.values(obj) -> Array
把 obj 当作一个 Hash,然后返回该对象所有属性的值。
注意,结果数组中元素的顺序取决于浏览器(它依赖于 for...in 循环), 因此并不能保证元素按照声明时的顺序或字典顺序排列。另外,请记住虽然属性名称是唯一的, 但属性的值并不要求遵循这种约束。
样例
Object.values()
// -> []
Object.values({ name: 'Prototype', version: 1.5 }).sort()
// -> [1.5, 'Prototype']
...
toQueryString [1.6]
toQueryString(obj) -> String
将一个对象转换为 URL 编码字符串形式。
这是一种串行化的形式,常用于提供复合的参数集,例如为 Ajax 命名空间中的那些对象提供参数(如 Ajax.Request 的 parameters 选项)。
值为 undefined 的“键/值”对串行化后只保留了键名称。值为数组的“键/值”对会将数组的每个元素串行化为一个键值对。 所有的值都会使用 JavaScript 原生的 encodeURIComponent 方法获取 URI 编码。
除数组外(数组是按照元素在数组中的顺序进行串行化的),串行化后键值对的顺序并不保证总是一致的 (并且通常情况下查询字符...
toJSON [1.5.1]
toJSON(obj) -> String
返回一个 JSON 字符串。
关于 Prototype JSON 编码器的更详细的信息,请查看我们的指南。
Example
var data = {name: 'Violet', occupation: 'character', age: 25, pets: ['frog', 'rabbit']};
Object.toJSON(data);
//-> '{"name": "Violet", "occupation": "character", "age": 25, "pets": ["frog","rabbit"]}'
...
toHTML [1.6]
toHTML(obj) -> String
如果 obj 具有 toHTML 方法,则调用 obj 的 toHTML 方法,否则将 obj 作为 String.interpret 的参数然后调用该方法。返回调用这些方法后的返回值。
样例
var Bookmark = Class.create({
initialize: function(name, url) {
this.name = name;
this.url = url;
},
toHTML: function() {
return '<a href="#{url}">#{name}</a>'.interpolate(this);
}
});
var api = new Bookmark('Prototype API', 'http://prototypejs.org/api');
Object.toHTML(api);
//-> '<a href=...
keys
Object.keys(obj) -> [String...]
把 obj 当作一个 Hash,然后返回该对象的属性名称列表。
注意,结果数组中元素的顺序取决于浏览器(它依赖于 for...in 循环), 因此并不能保证元素按照声明时的顺序或字典顺序排列。如果你希望结果元素有一个确定的顺序,请对数组进行排序。
样例
Object.keys()
// -> []
Object.keys({ name: 'Prototype', version: 1.5 }).sort()
// -> ['name', 'version']
isUndefined [1.6]
isUndefined(obj) -> Boolean
如果 obj 是一个 undefined 的类型,返回 true,否则返回 false。
样例
Object.isUndefined(); //-> true
Object.isUndefined(undefined); //-> true
Object.isUndefined(null); //-> false
Object.isUndefined(0); //-> false
Object.isUndefined(""); //-> false
...
isString [1.6]
isString(obj) -> Boolean
如果 obj 是一个 String 对象,返回 true,否则返回 false。
样例
Object.isString("foo"); //-> true
Object.isString(""); //-> true
Object.isString(123); //-> false
isNumber [1.6]
isNumber(obj) -> Boolean
如果 obj 是一个 Number 对象,返回 true,否则返回 false。
样例
Object.isNumber(0); //-> true
Object.isNumber(1.2); //-> true
Object.isNumber("foo"); //-> false
isHash [1.6]
isHash(obj) -> Boolean
如果 obj 是一个 Hash 类的实例,返回 true,否则返回 false。
样例
Object.isHash(new Hash({ })); //-> true
Object.isHash($H({ })); //-> true
Object.isHash({ }); //-> false
isFunction [1.6]
isFunction(obj) -> Boolean
如果 obj 是一个 Function 对象,返回 true,否则返回 false。
样例
Object.isFunction($); //-> true
Object.isFunction(123); //-> false
isElement [1.6]
isElement(obj) -> Boolean
如果 obj 是一个 DOM 级别 1 的节点,返回 true,否则返回 false。
样例
Object.isElement(new Element('div'));
//-> true
Object.isElement(document.createElement('div'));
//-> true
Object.isElement($('id_of_an_exiting_element'));
//-> true
Object.isElement(document.createTextNode('foo'));
//-> false
...
isArray [1.6]
isArray(obj) -> Boolean
如果 obj 是一个数组,返回 true,否则返回 false。
样例
Object.isArray([]); //-> true
Object.isArray($w()); //-> true
Object.isArray({ }); //-> false
inspect
Object.inspect(obj) -> String
返回 obj 针对调试的字符串表现形式。
undefined 和 null 被表示为代表自身的字符串。
其它的类型首先查找其是否具有 inspect 方法:如果有,则调用这个方法,否则,调用 toString 方法。
Prototype 为许多类型提供了 inspect 方法——不论是内建的类型还是库自定义的类型。例如 String、Array、Enumerable 和 Hash,这些方法试图从开发人员的角度出发, 为它们所属的类型提供更为有意义的字符串描述形式。
样例
Object.inspect()
// -> 'undefined'
Object.inspect(null)
// -> 'null'
Object.inspect(false)
// -> 'false'
Obje...