构建完备的Ajax开发工具箱
Firefox扩展:
HTMLValidator
DOM Inspector
Web开发扩展包:web-developer.xpi
http://chrispederick.com/work/web-developer/
通过prototype属性建立面向对象的JavaScript
每个JavaScript对象都有一个内置的属性---prototype。prototype属性保持着对另一个JavaScript对象的引用,这个对象作为当前对象的父对象。
(保存父对象的引用)
清单代码:5-3 inheritanceViaPrototype.html--见本文末尾。
私有属性和使用JavaScript的信息隐藏
JavaScript中创建建私有属性的方法:
私有属性可以在构造函数中使用var关键字定义;
私有属性只能有特权函数(privileged function)公用访问。
特权函数就是在构造函数中使用this关键字定义的函数。
两个对象之间创建继承关系的通用函数:
function createInheritance(parent,child){
var property;
for(property in parent){
if(!child[property]){
child[property] = parent[property];
}
}
}
示例:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>JavaScript Inheritance via Prototype</title>
<script type="text/javascript" src="inheritanceViaPrototype.js"></script>
<script type="text/javaScript">
function describe(vehicle) {
var description = "";
description = description + "Number of wheels: " + vehicle.wheelCount;
description = description + "/n/nCurb Weight: " + vehicle.curbWeightInPounds;
description = description + "/n/nRefueling Method: " + vehicle.refuel();
description = description + "/n/nMain Tasks: " + vehicle.mainTasks();
alert(description);
}
function createVehicle() {
var vehicle = new Vehicle();
describe(vehicle);
}
function createSportsCar() {
var sportsCar = new SportsCar();
describe(sportsCar);
}
function createCementTruck() {
var cementTruck = new CementTruck();
describe(cementTruck);
}
</script>
</head>
<body>
<h1>Examples of JavaScript Inheritance via the Prototype Method</h1>
<br/><br/>
<button οnclick="createVehicle();">Create an instance of Vehicle</button>
<br/><br/>
<button οnclick="createSportsCar();">Create an instance of SportsCar</button>
<br/><br/>
<button οnclick="createCementTruck();">Create an instance of CementTruck</button>
</body>
</html>