prototype简明教程

prototype(原型)

在JavaScript中,prototype对象是实现面向对象的一个重要机制。

每个函数就是一个对象(Function),函数对象都有一个子对象 prototype对象,类是以函数的形式来定义的。prototype表示该函数的原型,也表示一个类的成员的集合。

在通过new创建一个类的实例对象的时候,prototype对象的成员都成为实例化对象的成员。

1、该对象被类所引用,只有函数对象才可引用;

2、在new实例化后,其成员被实例化,实例对象方可调用。

同时,函数是一个对象,函数对象若直接声明成员,不用被实例化即可调用。

以下详细介绍prototype:

prototype.js 是一个由Sam Stephenson写的JavaScript包。这个构思奇妙编写良好的一段兼容标准的一段代码将承担创造胖客户端, 高交互性WEB应用程序的重担。轻松加入Web 2.0特性。

这个程序包里面包含了许多预定义的对象和通用性方法。编写这些方法的明显的目的就是为了减少你大量的重复编码和惯用法。

1.3.1. 使用 $()方法

$() 方法是在DOM中使用过于频繁的 document.getElementById() 方法的一个便利的简写,就像这个DOM方法一样,这个方法返回参数传入的id的那个元素。

比起DOM中的方法,这个更胜一筹。你可以传入多个id作为参数然后 $() 返回一个带有所有要求的元素的一个 Array 对象。下面的例子会向你描述这些。

<HTML>
<HEAD>
<TITLE> Test Page </TITLE>
<script src="prototype-
1.3.1
.js"></script>
<script>
  function test1()
  {
    var d = $('myDiv');
    alert(d.innerHTML);
  }
  function test2()
  {
    var divs = $('myDiv','myOtherDiv');
    for(i=0; i<divs.length; i++)
    {
      alert(divs[i].innerHTML);
    }
  }
</script>
</HEAD>
<BODY>
  <div id="myDiv">
    <p>This is a paragraph</p>
  </div>
  <div id="myOtherDiv">
    <p>This is another paragraph</p>
  </div>
  <input type="button" value=Test1 onclick="test1();"><br>
  <input type="button" value=Test2 onclick="test2();"><br>
</BODY>
</HTML>

这个方法的另一个好处就是你可以传入id字符串或者元素对象自己,这使得在创建可以传入任何形式参数的方法的时候, 它变得非常有用。

1.3.2. 使用$F()方法

$F()方法是另一个非常受欢迎的简写。它可以返回任何输入表单控件的值,如文本框或下拉框。 这个方法可以传入元素的id或者元素自己。

<script>
  function test3()
  {
    alert( $F('userName') );
  }
</script>
<input type="text" id="userName" value="Joe Doe"><br>
<input type="button" value=Test3 onclick="test3();"><br>

1.3.3. 使用$A()方法

$A()方法把接收到的参数转换成一个Array对象。

这个方法加上对Array类的扩展,可以很容易的转换或者复制任意的列举列表到Array对象, 一个被推荐使用的用法就是转换DOM的NodeLists到一个普通的数组里,可以被更广泛高效的使用, 看下面的例子。

<script>
  function showOptions(){
    var someNodeList = $('lstEmployees').getElementsByTagName('option');
    var nodes = $A(someNodeList);
    nodes.each(function(node){
        alert(node.nodeName + ': ' + node.innerHTML);
      });
  }
</script>
<select id="lstEmployees" size="10" >
  <option value="5">Buchanan, Steven</option>
  <option value="8">Callahan, Laura</option>
  <option value="1">Davolio, Nancy</option>
</select>
<input type="button" value="Show the options" onclick="showOptions();" >

时间: 2024-09-12 00:00:19

prototype简明教程的相关文章

基于LLVM的编译原理简明教程 (1) - 写编译器越来越容易了

基于LLVM的编译原理简明教程 (1) - 写编译器越来越容易了 进入21世纪,新的编程语言如雨后春笋一样不停地冒出来.需求当然是重要的驱动力量,但是在其中起了重要作用的就是工具链的改善. 2000年,UIUC的Chris Lattner主持开发了一套称为LLVM(Low Level Virtual Machine)的编译器工具库套件.后来,LLVM的scope越来越大,Low Level Virtual Machine已经不足以表示LLVM的全部,于是,LLVM就变成了正式的名字.LLVM可以

F#简明教程二:F#类型系统和类型推断机制

在上一篇教程<F#与函数式编程概述>中我们了解到F#和函数式编程的一些特点,更多关于F#语言和函数式编程的介绍可以参考51CTO之前对微软MVP赵颉老师的专访<TechED 09视频专访:F#与函数式编程语言>.本节教程我们将学习到F#的一些基础原理,在开始之前,让我们先温习一下我们的Hello World代码: #light System.Console.WriteLine("This is one hello") printfn "This is

XML简明教程目录

XML简明教程第1课: 处理XML元素 XML简明教程第2课: 处理XML文档 XML简明教程第3课 处理XML数据岛 XML简明教程第4课: 使用XML对象模型 XML简明教程第5课:使用XML名域 XML简明教程第6课 使用XML Schema XML简明教程第7课:在XML文档中使用数据类型 XML简明教程第8课:访问经过类型定义的XML值 XML简明教程第9课:使用C++ XML DSO XML简明教程第10课 :C++ XML DSO中使用主/细节特征 XML简易教程之一 XML简易教

XSL简明教程目录

XSL简明教程(1)XSL入门 XSL简明教程(2)XSL转换 XSL简明教程(3)在客户端的实现 XSL简明教程(4)在服务器端的实现 XSL简明教程(5)XSL的索引 XSL简明教程(6)XSL过滤和查询 了解WEB页面工具语言XML(一)背景 了解WEB页面工具语言XML(二)定义 了解WEB页面工具语言XML(三)支持工具 了解WEB页面工具语言XML(四)应用分类 了解WEB页面工具语言XML(五)好处 了解WEB页面工具语言XML(六)展望

Linux防火墙iptables简明教程

  前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔除了许多冗余的内容,提取出尽量多的精华部分成文,和大家共同学习,本文涉及的内容包括如下 Linux防火墙iptables简明教程 1.安装iptables 2.查看现有的iptables规则 3.删除某iptables规则 4.清除现有iptables规则 5.创建规则 6.设置开机启动 7.保

Python类的定义、继承及类对象使用方法简明教程

  这篇文章主要介绍了Python类的定义.继承及类对象使用方法简明教程,本文用浅显易懂的语言讲解了类的定义.继承及类对象的使用,非常实用易懂,需要的朋友可以参考下 Python编程中类的概念可以比作是某种类型集合的描述,如"人类"可以被看作一个类,然后用人类这个类定义出每个具体的人--你.我.他等作为其对象.类还拥有属性和功能,属性即类本身的一些特性,如人类有名字.身高和体重等属性,而具体值则会根据每个人的不同;功能则是类所能实现的行为,如人类拥有吃饭.走路和睡觉等功能.具体的形式如

Jquery插件编写简明教程

 这篇文章主要介绍了Jquery插件编写简明教程,jquery插件开发实例,需要的朋友可以参考下  代码如下: /*  1.jQuery插件文件名推荐命名为 jquery.[插件名].js 以免和其他javascript库插件混淆.例如命名为jquery.color.js  2.所有的对象方法名都应当附加到jQuery.fn对象上而所有的全局函数都应当附加到jQuery对象本身上.  3.在插件内部,this指向的是当前通过选择器获取的jquery对象,而不像一般方法哪样,例如chick()方法

Java 8简明教程

原文地址 本文由 ImportNew - 黄小非 翻译自 winterbe.欢迎加入翻译小组.转载请见文末要求. ImportNew注:有兴趣第一时间学习Java 8的Java开发者,欢迎围观<征集参与Java 8原创系列文章作者>. 以下是<Java 8简明教程>的正文. "Java并没有没落,人们很快就会发现这一点" 欢迎阅读我编写的Java 8介绍.本教程将带领你一步一步地认识这门语言的新特性.通过简单明了的代码示例,你将会学习到如何使用默认接口方法,La

C++多任务编程简明教程 (1) - C++的多任务其实很简单

C++多任务编程简明教程 (1) - C++的多任务其实很简单 用库的方式无法实现彻底的线程安全!我们需要C++11 与很多同学交流的时候发现,一想到用C++写多线程,还是想到pthread这样的库的方法实现. 但是,十几年前的研究就证明了,线程安全是无法用库的形式来提供的,有兴趣的同学可以参见原文:http://www.hpl.hp.com/techreports/2004/HPL-2004-209.pdf 解释需要大量的篇幅,作为快餐式的教程,我们只讲结论. 十几年过去了,CPU的乱序执行,