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
);
查看全文
相关阅读:
Elasticsearch集群使用ik分词器
ES Docs-3:Modifying Data
ES Docs-2:Exploring ES cluster
ES Docs-1:Installation Elasticsearch-2.3.1
Ubuntu的apt-get本地源搭配——根据需要自己添加软件作源
Linux中Root用户密码变更、密码忘记
Eclipse安装SVN插件
【转】Subversion快速入门教程-动画演示
【转】‘svn’不是内部或外部命令,也不是可运行的程序
pt-summary pt-mysql-summary工具
原文地址:https://www.cnblogs.com/thcjp/p/466100.html
最新文章
2个子查询的连接实例
ROW_NUMBER()与PARTITION BY 实例
Visual Studio 常用快捷键备忘
Node.js学习笔记
DataTable常用代码
SQL Server子查询实例
CROSS APPLY应用实例
读一篇Javascript问题贴的收获
ASP.NET MVC RenderPartial和Partial的区别
asp:Repeater实例备忘
热门文章
时间转时间戳
JS获取QueryString(Jquery)
easyui datagrid 行编辑功能
easyui datagrid 批量编辑和提交
javascript eval和JSON之间的联系
常用指令打印命令
C# 集合类 Array,Arraylist,List,Hashtable,Dictionary...
客户端类中中记录异常的方法: 使用Log4net
WPF 通过 CommandParameter 传递当前窗体到 ViewModel
使用Elasticsearch-jdbc为MySQL数据库建立索引
Copyright © 2011-2022 走看看