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
);
查看全文
相关阅读:
复习:C#3.0面向对象测试开发包
SQL Server 2000实现一则按类似VB VAL函数功能排序的案例
SQL Server TEXT类型字段字符串替换示例处理脚本
获取SQL Server服务器的连接信息用脚本(在原邹建写的基础上作一点改进)与一段查询SQL Server服务器阻塞和死锁信息用的脚本
字符串前部去除自定义函数(TSQL)
从数据库系统管理的角度上回答数据库是什么
话说物联网
赖床狂想记录
M1非接触式射频存储卡卡唯一号(十六进制值表示),去除其前部为0的自定义函数
SQLHelper类
原文地址:https://www.cnblogs.com/thcjp/p/466100.html
最新文章
通过反射获取对象属性及特征
ExtAspNet 用户管理
ExtAspNet 部门管理
ExtAspNet 系统框架
ExtAspNet 数据字典
回头看看自己走过的路
软件测试 —— 用例设计2(边界值)
如何保持工作热情
Tomcat 基础
软件测试 —— 用例设计3(其他)
热门文章
软件测试 —— 用例设计1(等价类)
视频监控如何实现多设备平台到省应急智慧中心播放的场景需求?
TSINGSEE青犀视频开发景区网站如何通过Go语言html生成PDF?
EasyPlayer.JS播放画面停止并出现回放按钮的问题排查
EasyPlayer播放器出错502 Bad Gateway问题分析
EasyPlayer播放不了EasyNVR分发的wsflv流地址怎么处理?
AI加持下的安防监控智能化展现——EasyGBS/EasyCVR的AI识别
AI计算机视觉技术如何赋能智慧城市建设?5大典型场景盘点
TSINGSEE青犀视频景区查看人流统计开发过程
shell中的“{}”
Copyright © 2011-2022 走看看