易截截图软件、单文件、免安装、纯绿色、仅160KB

《悟透javascript》学习笔记:九、原型毕露

引言
 
      prototype源自法语,软件界的标准翻译为“原型”,代表事物的初始形态,也含有模型和样板的意义。
 
prototype属性
 
JavaScript的所有function类型的对象都有一个prototype属性。这个prototype属性本身又是一个 object 类型的对象,因此我们也可以给这个 prototype 对象添加任意的属性和方法。既然 prototype是对象的“原型”,那么由该函数构造出来的对象应该都会具有这个“原型”的特性。事实上,在构造函数的prototype上定义的所有属性和方法,都是可以通过其构造的对象直接访问和调用的。也可以这么说,prototype提供了一群同类对象共享属性和方法的机制。运行如下代码,然后观察。
 
<script language="javascript">
function person(name){        //构造函数person
   this.name = name;
   //this创建出的对象,每一个副本都会包含其属性和函数
   this.say = function(){alert("hello, i'm " + this.name);}
}
//prototype创建的函数对象,所有的副本共享同一个函数
person.prototype.show = function(){alert("hi~~, i'm " + this.name);}
 
var p1 = new person("p1");
var p2 = new person("p2");
alert(p1.say == p2.say); //false,没共享函数
alert(p1.show == p2.show);  //true,共享函数
</script>
 
原型链
 
<script language="javascript">
function person(name){
   this.name = name;
}
person.prototype.say = function(){alert("hello, i'm " + this.name);}
 
function employee(name, salary){
   //调用person作为employee的构造函数——重点
   person.call(this, name);      //目的是继承person的属性
   this.salary = salary;
}
//子类构造函数首先需要用上层构造函数来建立 prototype对象,实现继承的概念——重点
employee.prototype = new person(); //目的是继承person的方法,只需要其 prototype 的方法,此对象的成员没有任何意义!
employee.prototype.showMoney = function(){alert(this.name + "'s salary is " + this.salary);}
 
var bill = new pers


相关文档:

JavaScript函数定义语法总结

JavaScript
函数定义语法总结
作者

黄诚
QQ
群:
65643887
1
.正常的定义方法:
function functionName([arguments]){
    
Javascript statements
    
[return expression]
}

1:
function evalScript( i, elem ) {
     &n ......

JavaScript事件

JavaScript事件分类:
1、捕获型(IE不支持)(从DOM结构的最顶端开始向下延伸)
2、冒泡型(从DOM结构的最低端向上一级级延伸)
【IE7以上可以给‘html’添加onclick事件,IE中body->html,火狐中html->body】
JavaScript添加事件监听:
1、IE:
[object].attachEvent("event_handler", fnHandler); ......

Javascript的history对象

history对象3个方法back()、forward()和go(),这些方法可以调用历史表中包含的文档。
back()方法装入历史表中的前一个页面,等效于浏览器中的Back按钮
forward()方法装入历史表中的后一个页面,等效于浏览器中的Forward按钮
go()方法进入历史表中的特定文档,可以取整形参数或字符串参数
go(n)n>0时,装入历史表中的 ......

JavaScript 用到alert出乱码问题

             response.write "<script language='javascript'>"
             response.write "alert('用户名或密码错误!');"
             response.write "hist ......

IE和FireFox的兼容的javascript回车事件

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="login.aspx.cs" Inherits="login" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="serve ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号