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
);
查看全文
相关阅读:
百度Apollo安装说明
Ubuntu 16.04 kinetic 下安装turtlebot2
三维点云地图构建方法
jupyter中添加conda环境
Pyplot教程(深度学习入门3)
linux下安装tomcat,部署项目
linux下修改系统时间
手把手集成web端手写公式功能
如何查看端口是被哪个程序占用的
Bootstrap的优先级、选择器、伪类
原文地址:https://www.cnblogs.com/thcjp/p/466100.html
最新文章
项目Alpha冲刺(团队)-第一天冲刺
项目Alpha冲刺(团队)-代码规范、冲刺任务与计划
团队作业第六次-团队Github实战训练
团队作业第五次-项目系统设计与数据库设计
团队作业第四次-项目需求分析
最大子矩形问题学习笔记
有线电视网
noip2017集训测试赛(十一)Problem C: 循环移位
Mobius反演与积性函数前缀和演学习笔记 BZOJ 4176 Lucas的数论 SDOI 2015 约数个数和
BZOJ 3864 Hero Meets Devil
热门文章
noip2017集训测试赛(六)Problem A: 炮艇大赛之正式赛
SDOI 2015 约束个数和
NOI模拟题6 Problem C: Circle
NOI模拟题5 Problem A: 开场题
NOI模拟题4 Problem C: 填格子(board)
Apollo2.5 CANBUS(ESDCAN卡)调试笔记(测试版)
ROS2 MAC OS Install
Apollo深度磁盘清理
Apollo GPS调试笔记
Apollo2.5摄像头安装
Copyright © 2011-2022 走看看