- 浏览: 193295 次
-
文章分类
最新评论
-
luxing44530:
你好, 关于 JDK 7中也有一个支持协程方式的实现 在那呀? ...
Java性能调优笔记 -
songgz:
你是一个会思考的人,前途无量,代码审查显然不能以风格和规则为主 ...
到底该怎么样做代码审查? -
jiaoronggui:
遇到过一模一样的问题
一条Select语句导致瓶颈 -
Leon.Wood:
写出让计算机读懂的代码很容易,写出让人读懂的只有高手才能做到. ...
到底该怎么样做代码审查? -
ajuanlove:
不经常用这玩意
对300万一张表数据,用游标进行循环,不同写法的效率比较
javascript对象的创建
JavaScript中定义对象的几种方式(JavaScript中没有类的概念,只有对象):
1) 基于已有对象扩充其属性和方法:
- var object = new Object();
- object.name = "zhangsan";
- object.sayName = function(name)
- {
- this.name = name;
- alert(this.name);
- }
- object.sayName("lisi");
2)工厂方式
- //工厂方式创建对象
- /*
- function createObject()
- {
- var object = new Object();
- object.username = "zhangsan";
- object.password = "123";
- object.get = function()
- {
- alert(this.username + ", " + this.password);
- }
- return object;
- }
- var object1 = createObject();
- var object2 = createObject();
- object1.get();
带参数的构造方法:
- function createObject(username, password)
- {
- var object = new Object();
- object.username = username;
- object.password = password;
- object.get = function()
- {
- alert(this.username + ", " + this.password);
- }
- return object;
- }
- var object1 = createObject("zhangsan", "123");
- object1.get();
让一个函数对象被多个对象所共享,而不是每一个对象拥有一个函数对象。
- function get()
- {
- alert(this.username + ", " + this.password);
- }
- function createObject(username, password)
- {
- var object = new Object();
- object.username = username;
- object.password = password;
- object.get = get;
- return object;
- }
- var object = createObject("zhangsan", "123");
- var object2 = createObject("lisi", "456");
- object.get();
- object2.get();
3)构造函数方式
- function Person()
- {
- //在执行第一行代码前,js引擎会为我们生成一个对象
- this.username = "zhangsan";
- this.password = "123";
- this.getInfo = function()
- {
- alert(this.username + ", " + this.password);
- }
- //此处有一个隐藏的return语句,用于将之前生成的对象返回
- }
- var person = new Person();
- person.getInfo();
可以在构造对象时传递参数
- function Person(username, password)
- {
- this.username = username;
- this.password = password;
- this.getInfo = function()
- {
- alert(this.username + ", " + this.password);
- }
- }
- var person = new Person("zhangsan", "123");
- person.getInfo();
4)原型(“prototype”)方式
- //使用原型(prototype)方式创建对象
- /*
- function Person()
- {
- }
- Person.prototype.username = "zhangsan";
- Person.prototype.password = "123";
- Person.prototype.getInfo = function()
- {
- alert(this.username + ", " + this.password);
- }
- var person = new Person();
- var person2 = new Person();
- person.username = "lisi";
- person.getInfo();
- person2.getInfo();
- */
- function Person()
- {
- }
- Person.prototype.username = new Array();
- Person.prototype.password = "123";
- Person.prototype.getInfo = function()
- {
- alert(this.username + ", " + this.password);
- }
- var person = new Person();
- var person2 = new Person();
- person.username.push("zhangsan");
- person.username.push("lisi");
- person.password = "456";
- person.getInfo();
- person2.getInfo();
如果使用原型方式对象,那么生成的所有对象会共享原型中的属性,这样一个对象改变了该属性也会反应到其他对象当中。
单纯使用原型方式定义对象无法在构造函数中为属性赋初值,只能在对象生成后再去改变属性值。
使用原型+构造函数方式来定义对象,对象之间的属性互不干扰,各 个对象间共享同一个方法
- //使用原型+构造函数方式来定义对象
- function Person()
- {
- this.username = new Array();
- this.password = "123";
- }
- Person.prototype.getInfo = function()
- {
- alert(this.username + ", " + this.password);
- }
- var p = new Person();
- var p2 = new Person();
- p.username.push("zhangsan");
- p2.username.push("lisi");
- p.getInfo();
- p2.getInfo();
5)动态原型方式:在构造函数中通过标志量让所有对象共享一个方法,而每个对象拥有自己的属性。
- function Person()
- {
- this.username = "zhangsan";
- this.password = "123";
- if(typeof Person.flag == "undefined")
- {
- alert("invoked");
- Person.prototype.getInfo = function()
- {
- alert(this.username + ", " + this.password);
- }
- Person.flag = true;
- }
- }
- var p = new Person();
- var p2 = new Person();
- p.getInfo();
- p2.getInfo();
JavaScript中的继承。
1) 对象冒充
- //继承第一种方式:对象冒充
- function Parent(username)
- {
- this.username = username;
- this.sayHello = function()
- {
- alert(this.username);
- }
- }
- function Child(username, password)
- {
- //下面三行代码是最关键的代码
- this.method = Parent;
- this.method(username);
- delete this.method;
- this.password = password;
- this.sayWorld = function()
- {
- alert(this.password);
- }
- }
- var parent = new Parent("zhangsan");
- var child = new Child("lisi", "1234");
- parent.sayHello();
- child.sayHello();
- child.sayWorld();
2) call方法方式。
call方法是Function对象中的方法,因此我们定义的每个函数都拥有该方法。可以通过函数名来调用call方法,call方法的第一个参数会被传递给函数中的this,从第2个参数开始,逐一赋值给函数中的参数。
- <p>//使用call方式实现对象的继承</p><p>function Parent(username)
- {
- this.username = username;</p><p> this.sayHello = function()
- {
- alert(this.username);
- }
- }</p><p>function Child(username, password)
- {
- Parent.call(this, username);</p><p> this.password = password;</p><p> this.sayWorld = function()
- {
- alert(this.password);
- }
- }</p><p>var parent = new Parent("zhangsan");</p><p>var child = new Child("lisi", "123");</p><p>parent.sayHello();</p><p>child.sayHello();
- child.sayWorld();</p><p>
- </p><span style="font-size:18px;"><span style="color:#000000;"> </span></span>
3) apply方法方式
- //使用apply方法实现对象继承
- function Parent(username)
- {
- this.username = username;
- this.sayHello = function()
- {
- alert(this.username);
- }
- }
- function Child(username, password)
- {
- Parent.apply(this, new Array(username));
- this.password = password;
- this.sayWorld = function()
- {
- alert(this.password);
- }
- }
- var parent = new Parent("zhangsan");
- var child = new Child("lisi", "123");
- parent.sayHello();
- child.sayHello();
- child.sayWorld();
4)原型链方式(无法给构造函数传参数)
- //使用原型链(prototype chain)方式实现对象继承
- function Parent()
- {
- }
- Parent.prototype.hello = "hello";
- Parent.prototype.sayHello = function()
- {
- alert(this.hello);
- }
- function Child()
- {
- }
- Child.prototype = new Parent();
- Child.prototype.world = "world";
- Child.prototype.sayWorld = function()
- {
- alert(this.world);
- }
- var child = new Child();
- child.sayHello();
- child.sayWorld();
5)混合方式(推荐)
更多信息请查看 java进阶网 http://www.javady.com
- //使用混合方式实现对象继承(推荐)
- function Parent(hello)
- {
- this.hello = hello;
- }
- Parent.prototype.sayHello = function()
- {
- alert(this.hello);
- }
- function Child(hello, world)
- {
- Parent.call(this, hello);
- this.world = world;
- }
- Child.prototype = new Parent();
- Child.prototype.sayWorld = function()
- {
- alert(this.world);
- }
- var child = new Child("hello", "world");
- child.sayHello();
- child.sayWorld();
发表评论
-
Java程序员从笨鸟到菜鸟之(三十三)大话设计模式之单例模式
2012-04-23 22:26 1071单例模式属于对象创建型模式,其意图是保证一个类仅有 ... -
Java程序员从笨鸟到菜鸟之(三十二)大话设计模式之设计模式分类和三种工厂模式
2012-04-23 22:25 1153设计模式分类 首先先简单说一下设计模式的分类设计模式可 ... -
Java程序员从笨鸟到菜鸟之(三十一)大话设计模式之设计模式遵循的七大原则
2012-04-23 22:24 789最近几年来,人们踊跃的提倡和使用设计模式,其根 ... -
Java程序员从笨鸟到菜鸟之(三十)javascript弹出框、事件、对象化编程
2012-04-23 22:24 1278一:弹出框 JavaScript ... -
Java程序员从笨鸟到菜鸟之(二十四)Xml基础详解和DTD验证
2012-04-22 15:20 885Xml基础详解 Xml:可扩展标记语言 (Extens ... -
Java程序员从笨鸟到菜鸟之(二十三)常见乱码解决以及javaBean基础知识
2012-04-22 15:20 1219乱码问题应该是做javaWeb开发人员都遇到过的问题吧 ... -
Java程序员从笨鸟到菜鸟之(二十二)华山论session和cookie机制
2012-04-22 15:19 1000会话(Session)跟踪是Web程序中常用的技术,用 ... -
Java程序员从笨鸟到菜鸟之(二十一)java过滤器和监听器详解
2012-04-22 15:18 10491、Filter工作原理( ... -
Java程序员从笨鸟到菜鸟之(二十)jsp自定义标签
2012-04-22 15:17 876一、基本概念 1、标签(Tag) 标签是一种XML元 ... -
Java程序员从笨鸟到菜鸟之(十九)EL表达式和JSTL
2012-04-21 12:55 1116一:EL表达式: 1.定义:为了计算和输出存储在标志位 ... -
Java程序员从笨鸟到菜鸟之(十八)JSP基本语法与动作指令
2012-04-21 12:54 899Jsp,通常的被大家认为是做网页的前台界面,我刚学习的时 ... -
Java程序员从笨鸟到菜鸟之(十六)CSS基础积累总结(上)
2012-04-21 12:52 825一:CSS的工作原理 1. ... -
java程序员从笨鸟到菜鸟之(七)一—java数据库操作
2012-04-19 22:48 1432更多信息请查看 java进 ... -
Java程序员从笨鸟到菜鸟之(六)I/O流操作
2012-04-19 22:47 1681在软件开发中,数 ... -
Java程序员从笨鸟到菜鸟之(十)枚举,泛型详解
2012-04-19 22:48 1157一:首先从枚举开始 ... -
Java程序员从笨鸟到菜鸟之(九)——数据库有关知识补充(事务、视图、索引、存储过程)
2012-04-19 22:48 1114一:事务 首先看一下什么是事务: 通俗的理解,事务 ... -
Java程序员从笨鸟到菜鸟之(八)反射和代理机制
2012-04-19 22:48 861反射和代理机制是 ... -
java程序员从笨鸟到菜鸟之(七)一—java数据库操作
2012-04-18 21:14 0数据库访问几乎每一个稍微成型的程序都要用到的知识,怎么 ... -
Java程序员从笨鸟到菜鸟之(六)I/O流操作
2012-04-18 21:13 0在软件开发中,数据流和数据库操作占据了一个很重要的位置 ... -
Java程序员从笨鸟到菜鸟之(五)java开发常用类(包装,数字处理集合等)(下)
2012-04-18 00:12 832写在前面:由于前天 ...
相关推荐
曹胜欢在《JAVA程序员 从笨鸟到菜鸟.pdf》中分享了他个人学习Java的经历,从迷茫到逐渐成长的过程。他强调了自学的重要性,并鼓励初学者不要怕走弯路,同时希望自己的经验可以帮助到同样在学习Java的初学者。 2. ...
2. **面向对象编程**:介绍类、对象、封装、继承、多态等核心概念,以及如何设计和实现面向对象的程序。 3. **异常处理**:讲解如何捕获和处理运行时异常,提高程序的健壮性。 4. **集合框架**:包括ArrayList、...
基于万能逼近原理的自适应模糊控制算法在多自由度AUV运动控制中的应用与抗干扰补偿Simulink仿真研究,自适应模糊控制算法的万能逼近原理与多自由度AUV运动控制的抗干扰补偿技术——基于Simulink的仿真研究,万能逼近原理自适应模糊控制算法的多自由度AUV运动控制抗干扰补偿simulink仿真 ,核心关键词:万能逼近原理; 自适应模糊控制算法; 多自由度AUV运动控制; 抗干扰补偿; Simulink仿真。,基于万能逼近的模糊控制算法多自由度AUV抗干扰补偿Simulink仿真
deepseek最新资讯、配置方法、使用技巧,持续更新中
deepseek最新资讯、配置方法、使用技巧,持续更新中
结合扩展卡尔曼滤波与滑模观测器的策略:优化电角度估计,反电势波形逼近完美正弦波,结合扩展卡尔曼滤波与滑模观测器的反电势波形优化:正弦波形展现近乎完美精度,电角度估算与实际应用差异微小,扩展卡尔曼滤波与滑模观测器的结合,反电势波形近乎完美的正弦波形,观测器估算转子电角度与实际电角度相差0.3弧度左右,转速跟随效果较好。 ,核心关键词:扩展卡尔曼滤波; 滑模观测器; 反电势波形; 转子电角度估算; 转速跟随效果。,卡尔曼滑模观测器:优化正弦波转子角度与转速估算
毕业设计_基于springboot+vue的**学生公寓管理系统**【源码+sql+可运行】【**50217**】.zip 全部代码均可运行,亲测可用,尽我所能,为你服务; 1.代码压缩包内容 代码:springboo后端代码+vue前端页面代码; 脚本:数据库SQL脚本 效果图:运行结果请看资源详情效果图 2.环境准备: - JDK1.8+ - maven3.6+ - nodejs14+ - mysql5.6+ - redis 3.技术栈 - 后台:springboot+mybatisPlus+Shiro - 前台:vue+iview+Vuex+Axios - 开发工具: idea、navicate 4.功能列表 - 系统设置:用户管理、角色管理、资源管理、系统日志 - **业务管理:业务管理:公寓信息、房间信息、入住记录、学生信息** 3.运行步骤: 步骤一:修改数据库连接信息(ip、port修改) 步骤二:找到启动类xxxApplication启动 4.若不会,可私信博主!!!
1、文件内容:xorg-x11-server-source-1.20.4-29.el7_9.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/xorg-x11-server-source-1.20.4-29.el7_9.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊
1、文件内容:yum-plugin-ps-1.1.31-54.el7_8.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/yum-plugin-ps-1.1.31-54.el7_8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊
基于模型预测控制(MPC)的无人船与无人车编队一致性协同控制研究(附原文献),基于模型预测控制(MPC)的无人船与无人车编队一致性协同控制研究(附原文献),无人船编队 无人车编队 MPC 模型预测控制 多智能体协同控制 一致性 MATLAB 无人车 USV 带原文献 ,无人船编队; 无人车编队; MPC 模型预测控制; 多智能体协同控制; 一致性; MATLAB; USV; 原文献,无人系统协同控制:MPC模型预测控制下的多智能体编队与一致性研究(原文献支撑)
4套中级通信工程师综合真题及答案(2019,2020,2021,2023),适用于需要考中级通信工程师的人群
deepseek最新资讯,配置方法,使用技巧,持续更新中
基于matlab的锁相环PLL相位噪声拟合仿真代码集合:多个版本建模与仿真,高质量的锁相环PLL仿真代码集合:Matlab与Simulink建模研究,[1]锁相环 PLL 几个版本的matlab相位噪声拟合仿真代码,质量杠杠的,都是好东西 [2]锁相环matlab建模稳定性仿真,好几个版本 [3]锁相环2.4G小数分频 simulink建模仿真 ,PLL; Matlab相位噪声拟合仿真; Matlab建模稳定性仿真; 锁相环2.4G小数分频Simulink建模仿真,MATLAB仿真系列:锁相环PLL及分频器建模仿真
exceptionLogs.zip
基于光伏微网的经济性与并网负荷波动率双目标优化调度策略:蓄电池与V2G协同管理策略仿真研究,MATLAB下光储充微网结合电动汽车V2G的多目标协同调度策略研究:经济性与并网负荷波动性的对比分析,MATLAB代码:考虑V2G的光储充一体化微网多目标优化调度策略 关键词:光储充微网 电电汽车V2G 多目标优化 蓄电池优化 调度 参考文档:《光伏微网下考虑V2G补偿蓄电池容量的双目标优化调度策略》,已经投稿EI会议,中文说明文档可联系我咨询 仿真平台:MATLAB 平台 优势:代码注释详实,适合参考学习,相关成果已经采用,程序非常精品,请仔细辨识 主要内容:过建立光伏微网中以经济性和并网负荷波动率为双目标的蓄电池和V2G的协同调度模型。 采用粒子群算法,对电网、微网调度中心和电动汽车用户三方在无、无序、转移和调度V2G电动汽车负荷四种运行模式下的经济和安全影响进行对比。 最后,根据算例分析,求解四种模式下两级负荷曲线及经济收益表。 对比分析得出,引入V2G可以替代部分容量的蓄电池,使光伏微网在负荷峰谷平抑、三方经济和安全等方面进一步优化。 求解采用的是PSO算法(粒子群算法),求解效果极
javascript 动态网页设计期末大作业(自己手写的,高分期末作业),含有代码注释,新手也可看懂,个人手打98分项目,导师非常认可的高分项目,毕业设计、期末大作业和课程设计高分必看,下载下来,简单部署,就可以使用。该项目可以直接作为毕设、期末大作业使用,代码都在里面,系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值,项目都经过严格调试,确保可以运行! javascript 动态网页设计期末大作业(自己手写的,高分期末作业)javascript 动态网页设计期末大作业(自己手写的,高分期末作业)javascript 动态网页设计期末大作业(自己手写的,高分期末作业)javascript 动态网页设计期末大作业(自己手写的,高分期末作业)javascript 动态网页设计期末大作业(自己手写的,高分期末作业)javascript 动态网页设计期末大作业(自己手写的,高分期末作业)javascript 动态网页设计期末大作业(自己手写的,高分期末作业)javascript 动态网页设计期末大作业(自己手写的,高分期末作业)javascript 动态网页设计期
混合智能体系统编队控制:分布式优化与15异构混合阶的挑战,异构混合阶智能体系统编队控制的分布式优化策略研究,15异构混合阶多智能体系统编队控制的分布式优化(无参考文献) ,核心关键词:15异构混合阶; 多智能体系统; 编队控制; 分布式优化; 无参考文献。,15混合阶多智能体系统编队分布式优化控制
javascript 动态网页设计期末大作业(自己手写的,很适合期末作业),含有代码注释,新手也可看懂,个人手打98分项目,导师非常认可的高分项目,毕业设计、期末大作业和课程设计高分必看,下载下来,简单部署,就可以使用。该项目可以直接作为毕设、期末大作业使用,代码都在里面,系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值,项目都经过严格调试,确保可以运行! javascript 动态网页设计期末大作业(自己手写的,很适合期末作业)javascript 动态网页设计期末大作业(自己手写的,很适合期末作业)javascript 动态网页设计期末大作业(自己手写的,很适合期末作业)javascript 动态网页设计期末大作业(自己手写的,很适合期末作业)javascript 动态网页设计期末大作业(自己手写的,很适合期末作业)javascript 动态网页设计期末大作业(自己手写的,很适合期末作业)javascript 动态网页设计期末大作业(自己手写的,很适合期末作业)javascript 动态网页设计期末大作业(自己手写的,很适合期末作业)javascrip
X光安检OPIXray数据集已经转换为VOC格式,可直接转换为为YOLO