zoukankan
html css js c++ java
js入门实例の构造函数\方法的定义和调用\原型对象
<
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
);
查看全文
相关阅读:
68.css 3d 卡片翻转效果
67.canvas绘制常规图形
66.环形加载动画(canvas/svg)
65.canvas画一个表(2)
64.canvas画一个表(1)
63.实现一个拖拽排序
62.textarea 自适应高度
co co a P o a d s的使用
在MJRefresh的基础上实现动画的自定义和自动下拉刷新
iOS26 AFNetworking
原文地址:https://www.cnblogs.com/thcjp/p/466100.html
最新文章
计算数组 集合 最大值算法
centos7安装RabbitMQ
在linux上用crontab执行定时任务
利用kettle发送邮件
在linux上设置kettle的仓库
class类文件结构
递归demo
UnicodeEncodeError: 'latin-1' codec can't encode character 解决sae flask 中文问题
LayoutInflater作用及使用
在SQL Server 2008 中使用SQL脚本创建登录用户并授权
热门文章
Windows Server 中开启 SQL Server 2008 的1433端口
ASP.NET MVC开发必看系列
实现一个简单的邮箱地址爬虫(python)
玩转kindle paperwhite: 如何越狱,安装强大外挂软件koreader
敏捷软件开发宣言
跟我一起学写jQuery插件开发方法(转载)
想买一套arduino玩玩
71.css 一个色子
70.一个spring mvc
69.一个element+vue+router+vuex管理系统前端模板
Copyright © 2011-2022 走看看