好程序员Java学习路线分享JS中的面向对象
好程序员Java学习路线分享JS中的面向对象,在JS中,一般情况下我们都是直接写函数,直接调用,但是发现JS中也有new关键字,那么new关键字作为创建对象的关键字,给我们的感觉就是在JS中可以定义一个类,然后用new创建对象,那么在JS中如何做呢?我们先看如下案例,下面的案例是写一个简单的喷泉效果的。
window.onload = function(){
// 创建一个画布对象
var canvas = document.createElement("canvas");
// 设置大小和颜色
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
canvas.style.backgroundColor = "#333333";
// 将画布放置到body里
document.body.appendChild(canvas);
// 得到画笔
var context = canvas.getContext("2d");
// 定义一个存放所有粒子的数组
var particles = [ ];
// 调用显示粒子
showParticle();
// 创建并显示粒子的方法
function showParticle(){
// 循环操作 setInterval(function(){ // 清空画布 context.clearRect(0,0,canvas.width, canvas.height); // 创建粒子 var p = new Particle(canvas.width * 0.5, canvas.height * 0.5); // 将粒子装入存放粒子的数组 particles.push(p); // 循环更新所有粒子的位置 for (var i = 0;i<particles.length;i++) { // 更新位置 particles[i].updateData(); } }, 50);
}
function Particle(x, y){
// 原坐标 this.x = x; this.y = y; // 初始出现的改变的y的值 this.yVal = -5; // 改变的x的值 this.xVal = Math.random() * 8 - 4; // 定义一个下降的重力加速度 this.g = 0.1; // 更新位置 this.updateData = function(){ // X值的变化 this.x = this.x + this.xVal; // Y值的变化 this.y = this.y + this.yVal; // 每次改变Y值速度的变化 this.yVal = this.yVal + this.g; // 生成一个随机颜色 context.fillStyle = "#" + Math.floor(Math.random() * 0xffffff).toString(16); // 将更新位置后的圆绘制出来 this.draw(); }; // 绘图的方法 this.draw = function(){ // 开始画图 context.beginPath(); // 画圆 context.arc(this.x, this.y,5,0,Math.PI * 2, false); // 结束画图 context.closePath(); // 填充 context.fill(); };
}
};
在以上案例中,我们使用了new Particle来创建了一个对象,可以看到Particle其实也是一个function,那么它跟其他的function有啥区别呢?我们发现,里面定义的变量前面用了一个this关键字,定义的方法也用到了this关键字,这和Java中的this很相似,在上面的案例中,就可以使用new出来的变量来调用这些this后面的变量和函数,这就是一种在JS中创建对象的方式。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
一遍文章搞清楚VO、DTO、DO、PO的概念、区别
作者:Cat Qi概念:VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。DO(Domain Object):领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。PO(Persistent Object):持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,如果持久层是关系型数据库,那么,数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性。模型:下面以一个时序图建立简单模型来描述上述对象在三层架构应用中的位置 用户发出请求(可能是填写表单),表单的数据在展示层被匹配为VO。展示层把VO转换为服务层对应方法所要求的DTO,传送给服务层。服务层首先根据DTO的数据构造(或重建)一个DO,调用DO的业务方法完成具体业务。服...
- 下一篇
好程序员Java学习路线分享实战Tomcat性能优化
好程序员Java学习路线分享实战Tomcat性能优化,前言,由于不同的硬件配置导致默认的tomcat配置无法达到最佳的性能,导致我们需要对tomcat的进行相应的配置调整。Tomcat内存优化配置信息:JAVA_OPTS=’-Xms1024m -Xmx2048m -XX: PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m’将以上配置信息在tomcat中的catalina.sh 中配置如下图所示: 参数描述:-server 启用jdk 的 server 版; -Xms java虚拟机初始化时的最小内存; -Xmx java虚拟机可使用的最大内存; -XX: PermSize 内存永久保留区域 -XX:MaxPermSize 内存最大永久保留区域根据不同的配置硬件设备可适当调整参数的大小,内存大、cpu核数多,可对相应的参数设置过大,反之设置适当偏小。Tomcat并发优化并发优化主要在conf中server.xml文件中配置。配置代码如下:protocol="HTTP/1.1"maxHttpHeaderSize="8192"min...
相关文章
文章评论
共有0条评论来说两句吧...