JavaScript 测试 Prototype
Prototype 是一个早期的 JavaScript 库,它把获取元素、绑定事件、AJAX 等常用能力封装成简洁的 API,并扩展了 Array、String 等原生对象的方法。与 jQuery 一样,引入之后先"测试"是否加载成功、API 是否可用,是使用它的第一步。如今它已很少用于新项目,但非常适合用来理解库的设计思想。
Prototype 是什么
Prototype 由 Sam Stephenson 于 2005 年发布,特点是:扩展原生对象、提供 $() 等全局函数。它不依赖其他库,用一个 <script> 标签即可引入。
验证是否加载成功
引入之后,全局会挂出 Prototype 对象,并定义 $()、$$() 等函数:
// 引入 prototype.js 后在浏览器控制台运行
console.log(typeof Prototype); // 输出:object(加载成功)
console.log(Prototype.Version); // 输出:1.7.3(版本号,随版本而异)
console.log(typeof $); // 输出:function
console.log(typeof $$); // 输出:function
基本用法测试
用 $() 按 id 取元素,用 $$() 按 CSS 选择器取元素集合,用 observe() 绑定事件(需在浏览器中运行完整 HTML):
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="utf-8"></head>
<body>
<button id="btn">点我</button>
<p id="msg">等待测试……</p>
<p class="demo">第一段</p>
<p class="demo">第二段</p>
<script src="https://example.com/prototype.js"></script>
<script>
document.observe('dom:loaded', function () {
$('msg').update('Prototype 测试成功!'); // 修改指定元素内容
$$('p.demo').each(function (p) { // 遍历所有 p.demo
p.addClassName('highlight'); // 给每个元素加上样式类
});
$('btn').observe('click', function () {
alert('按钮被点击');
});
});
</script>
</body>
</html>
浏览器效果:段落文字变为"Prototype 测试成功!",两个 p.demo 都被加上 highlight 类,点击按钮弹出提示框。
现状与注意
- Prototype 直接扩展原生对象(如给 Array 增加 each 方法),这种"修改别人家对象"的做法可能与其他库冲突。
- 它早期的使用者主要是 Ruby on Rails 项目;如今 jQuery、Vue、React 更流行,Prototype 已停止活跃维护。
- 学习它的重点在于理解"库如何用 $ 与 $$ 提供简洁 API",不必在新项目中使用。
小结:用 typeof 检查 Prototype 以及 $()、$$() 是否就绪,即可完成加载测试。$() 取单个元素、$$() 取元素集合、observe() 绑定事件,是它的三个核心用法。