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 类,点击按钮弹出提示框。

现状与注意

  1. Prototype 直接扩展原生对象(如给 Array 增加 each 方法),这种"修改别人家对象"的做法可能与其他库冲突。
  2. 它早期的使用者主要是 Ruby on Rails 项目;如今 jQuery、Vue、React 更流行,Prototype 已停止活跃维护。
  3. 学习它的重点在于理解"库如何用 $ 与 $$ 提供简洁 API",不必在新项目中使用。

小结:用 typeof 检查 Prototype 以及 $()、$$() 是否就绪,即可完成加载测试。$() 取单个元素、$$() 取元素集合、observe() 绑定事件,是它的三个核心用法。

笔记加载中…