1.确认删除
2.阶乘
3.面向对象——继承(用prototype)
4.js面向对象——多态
见同名下载
function confirmit()
{
if(confirm("你确认删除此文件吗?"))
{
document.form1.submit();
}
}
<form name="form1" action=1.html>
<input type="button" value="ok" onclick="return confirmit()"/>
</form>
2.阶乘
var factorial=function(x) {
if (x <= 1) return 1;
return x * arguments.callee(x-1);
}
alert(factorial(4));
3.面向对象——继承(用prototype)
function Circle(radius) { //定义父类Circle
this.radius = radius;
}
Circle.prototype.area = function() { //定义父类的方法area计算面积
return this.radius * this.radius * 3.14;
}
function PositionCircle(x,y,radius) { //定义类PositionCircle
this.x = x; //属性横坐标
this.y = y; //属性纵坐标
Circle.call(this,radius); //调用父类的方法,相当于调用this.Circle(radius),设置PositionCircle类的
//radius属性
}
PositionCircle.prototype = new Circle(); //设置PositionCircle的父类为Circle类
var pc = new PositionCircle(1,2,1);
alert(pc.area()); //3.14
//PositionCircle类的area方法继承自Circle类,而Circle类的
//area方法又继承自它的prototype属性对应的prototype对象
alert(pc.radius); //1 PositionCircle类的radius属性继承自Circle类
/*
注意:在前面我们设置PositionCircle类的prototype属性指向了一个Circle对象,
因此pc的prototype属性继承了Circle对象的prototype属性,而Circle对象的constructor属
性(即Circle对象对应的prototype对象的constructor属性)是指向Circle的,所以此处弹出
的是Circ.
*/
alert(pc.constructor); //Circle
/*为此,我们在设计好了类的继承关系后,还要设置子类的constructor属性,否则它会指向父类
的constructor属性
*/
PositionCircle.prototype.constructor = PositionCircle
alert(pc.constructor); //PositionCircle
4.js面向对象——多态
见同名下载