js入门实例の构造函数/方法的定义和调用/原型对象
2006-10-22 13:54
911 查看
<script language="javascript">
function circel(radius)
{//这个函数定义了类自身,下面r是构造函数定义并并初始化的一个实例变量
this.r=radius;
}
//该属性是类变量,他属于构造函数的一个属性
circel.PI=3.14159;
function area()
{//这个当然是计算圆面积的公式了
return this.PI * this.r * this.r;
}
//下面我们通过把函数赋给构造函数的圆型对象使他成为一个实例方法,
//为了与Navigator3 兼容,我们必须在原型对象生成之前创建并抛弃一个对象
new circel(0);
circel.prototype.area=area;
//以下是另一个函数,他将两个参数对比,并返回较大的一个
function circel_max(a,b)
{
if(a.r > b.r)
return a;
else
return b;
}
//由于该函数比较的是两个对象,所以将他看作是对单个Circel实例方法操作是没有意义的
//但我们也不希望成为一个独立的函数,所以将他赋以一个构造函数,使他成为一个类方法
circel.max=circel_max;
//下面的代码使用了circel的各个字段
var c=new circel(1.0); //创建circel类的一个实例
c.r=2.2; //设置实例的一个变量r
var a=c.area(); //调用实例的area方法
var x=Math.exp(circel.PI); //在我们自己的计算中使用变量PI
var d=new circel(1.2); //创建另一个circel实例
var bigger=circel.max(c,d);//使用类方法circel.max
</script>
JScript.js文件
/**//* JScript 文件
复数就是一个虚数和一个虚数的和,虚数i是-1的平方根
*/
/**//*定义类的第一步是定义该类的构造函数,资格构造函数要初始化对象的所有实例函数
这些属性是核心的“状态变量”是他们使类的每个实例互不相同
*/
function JScript(real,img)
{
this.x=real;//实数部分
this.y=img;//虚数部分
}
/**//*定义函类的第二步是在构造函数的原型对象中定义他的实例方法(或者其他的属性)
该对象定义的任何属性都将被这个类的所有实例继承
注意实例方法对this关键字 的隐式操作,许多方法都不需要其他的参数
*/
//返回复数的大小,他的定义是从原点(0,0)到复平面的距离
JScript.prototype.magnitude=function()
{
return Math.sqrt(this.x * this.x + this.y * this.y);
};
//返回复数的相反数
JScript.prototype.negative=function()
{
return new JScript(-this.x ,-this.y);
};
//以一种有效的方式把JScript对象装换成字符串,这将是把JScript对象用作字符串时候调用的函数
JScript.prototype.toString=function()
{
return "{"+ this.x +","+ this.y +"}";
};
//返回一个复数的实数部分,该函数是在将JScript对象作为原始值处理时调用
JScript.prototype.valueOf=function() {return this.x;};
/**//*定义类的第三步是定义类方法。
常量和其他类变量作为函数构造自身的属性(而不是构造函数的原型对象的属性)
注意静态方法,没有使用this关键字,因为他们只对参数进行操作
*/
//计算两个复数的和并返回结果
JScript.add()=function(a,b)
{
return new JScript(a.x + b.x ,a.y + b.y);
};
//用一个复数减另一个复数,返回结果
JScript.subtract()=function(a,b)
{
return new JScript(a.x - b.x , a.y - b.y);
};
//计算两个复数的乘积,并返回结果
JScript.multiply()=function(a,b)
{
return new JScript(a.x * b.x - a.y * b.y , a.x * b.x + x.y * b.y);
};
/**//*下面是一些有用的预定义复数,他们被定义成了类变量,这样就能够被用着常量(注意,他们实际并不是只读的)
*/
JScript.zero=new JScript(0,0);
JScript.one=new JScript(1.0);
JScript.i=new JScript(0.1);
转自:动态网站制作指南 | www.knowsky.com
相关文章推荐
- js入门实例の构造函数\方法的定义和调用\原型对象
- js入门实例の构造函数\方法的定义和调用\原型对象
- js入门实例の构造函数/方法的定义和调用/原型对象
- 在js对象中定义属性和方法的实例。
- Js通过原生对象的原型定义新方法
- 【MDNjs笔记】——入门——第三章——对象.构造函数.原型链.继承
- C# 反射详解:定义、创建对象、调用实例方法及静态方法
- JS面向对象-原型对象,实例对象,构造函数的关系
- 定义平面中的一个Circle类, 1编写一个无参数构造函数, 2编写一个有参的构造函数 3在主函数中调用无参构造函数生成圆的实例c1,调用有参构造函数生成圆的实例c2,调用实例方法判断c1和c2是否重
- 关于js中,原型对象,原型链,构造函数,实例之间关系的理解与区别
- JS基础学习第六天:JavaScript对象入门(构造函数和实例对象)
- JS中声明对象,调用方法加载树形菜单的实例
- js 创建对象的两种主要方法 构造函数 和 原型+构造函数组合
- js 构造函数和原型对象
- js中使用使用原型(prototype)定义方法的好处
- JS学习笔记——JavaScript继承的6种方法(原型链、借用构造函数、组合、原型式、寄生式、寄生组合式)
- JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
- 详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
- WebView加载html代码,js脚本中调用android对象的方法...
- 以Point类为基础,定义一个平面中的Circle类: 1、编写一个无参的构造函数; 2、编写一个有参的构造函数; 3、在主函数中调用无参的构造函数生成圆的实例c1,调用有参的构造函数生成圆的实例c2