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
);
查看全文
相关阅读:
以太坊智能合约 Solidity 的常用数据类型介绍
使用 Browser-solidity 在 Go-Ethereum1.7.2 上进行简单的智能合约部署
Linux学习笔记之vim中的替换功能
深度学习笔记之为什么是SoftMax
机器学习笔记之Jupyter Notebook各种使用方法
机器学习笔记之TF-IDF原理及使用
机器学习笔记之LATEX数学公式基本语法
机器学习笔记之Anaconda中命令形式安装XGBoost(pip install)
机器学习笔记之XGBoost实现对鸢尾花数据集分类预测
ELK学习笔记之Elasticsearch和Kibana数据导出实战
原文地址:https://www.cnblogs.com/thcjp/p/466100.html
最新文章
oracle数据库组件列表及相关的数据字典视图
VMware Workstation 11 搭建windows server 2012 之sql server 2012集群常见问题整理
sql server 数据库变成单用户模式的恢复
PID控制器改进笔记之二:改进PID控制器之手自动切换
外设驱动库开发笔记4:AD9833函数发生器驱动
PID控制器改进笔记之一:改进PID控制器之参数动态调整
外设驱动库开发笔记3:AD527x系列数字电位器驱动
外设驱动库开发笔记2:AD8400系列数字电位器驱动
外设驱动库开发笔记1:AD56xx系列DAC驱动
外设驱动库开发笔记0:EPD总体设计
热门文章
STM32学习及开发笔记八:采用主从计时器实现精确脉冲输出
快乐
在ARM Cortex-M上实现FreeRTOS性能计数器
Docker 创建 Crucible4.6.1 以及与 Crowd3.3.2 实现 SSO 单点登录
Docker 创建 Crowd3.3.2 以及打通 Jira Software7.12.3和Confluence6.12.2 SSO 单点登录
Docker 创建 Jira Core(Jira SoftWare) 7.12.3 中文版
Docker 创建 Confluence6.12.2 中文版
Truffle 4.0、Geth 1.7.2、TestRPC在私有链上搭建智能合约
Go-Ethereum 1.7.2 结合 Mist 0.9.2 实现众筹合约的实例
Go-Ethereum 1.7.2 结合 Mist 0.9.2 实现代币智能合约的实例
Copyright © 2011-2022 走看看