- 浏览: 505370 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (339)
- C# (2)
- Java集合 (7)
- Java设计模式 (15)
- Java基础 (31)
- Java-Spring (7)
- Java-Spring AOP (9)
- Java-Spring Transaction (6)
- Java-Hibernate (13)
- Jsp (7)
- JSTL (2)
- 加密解密 (13)
- sql (3)
- 数据库技术 (7)
- JQuery (2)
- css (3)
- JavaScript (19)
- Linux (34)
- 项目管理 (5)
- Tomcat (5)
- Oracle (4)
- axis2 (5)
- Linux c/c++ (40)
- Linux 防火墙及抓包分析 (10)
- Linux 环境配置 (3)
- Linux 高级命令 (14)
- Linux Server 配置 (9)
- c++ 内存管理 (4)
- JUnit (1)
- SSL 通信 (2)
- windows 系统调试 (8)
- 字符串处理 (8)
- 排序算法 (7)
- ACE (1)
- IT技术 (1)
- 敏捷开发 (1)
- TCPIP (4)
- 汇编语言 (7)
- STL (2)
- Struts (1)
- iBatis (3)
- 音视频开发 (2)
- Java多线程 (3)
- 架构设计 (2)
- Java网络编程 (1)
- Ubantu (0)
- Eclipse (2)
最新评论
-
df270464278:
请问博主有遇到中文乱码的问题吗?就是json字符串里面包含中文 ...
cur发送json字符串, post 请求 -
ykbj117:
你们知道刘绍华么?就是北邮的一个教授,专门研究WebRTC的资 ...
WebRTC -
隐形的翅膀:
不会用powershell
去除SVN标志 -
lengbamboo:
改注册表比较危险,给个powershell的脚本:powers ...
去除SVN标志 -
hedong56:
[/b][b][i][/i][u][/u][flash=20 ...
JAVASCRIPT定义对象的四种方式
先写一个函数,下面几个方式会用到
工厂方式
先创建对象,然后添加属性和方法,不需要用NEW创建对象,
如果把函数写在内部,每次调用都会创建新的函数,放在外面,封装性不好
构造函数方式
在构造函数内部不创建对象,使用this关键字,创建时候用new操作符,如果把函数声明在内部,存在和工厂方式相同的问题,重复创建函数。为每个对象都创建独立的函数版本。放在外部,封装性不好
原型方式,创建对象时不能使用构造传递参数,必须先创建对象,然后改变属性的值
混合原型和构造函数方式
可以传递参数构造对象,多个实例对象共享一个函数
第四种的方式看上去也很散落,可以改进一下
优点:
1. 可以传参数构造一个新对象
2. 当有多个对象产生时,不会创建多个函数实体,没有内存浪费
3. 封装想很好,属性和方法分开,
function showSalary(){ alert(this.salary); }
工厂方式
先创建对象,然后添加属性和方法,不需要用NEW创建对象,
如果把函数写在内部,每次调用都会创建新的函数,放在外面,封装性不好
function createWorker(sAage,sSalary,sDepartment){ var oWorker=new Object(); oWorker.age=sAage; oWorker.salary=sSalary; oWorker.department=sDepartment; //创建函数的方式一,指向我们文章开头写好的函数名,缺点是函数在对象的外部,封装性不好 oWorker.tellSalary=showSalary; //创建函数的方式二,在对象内部声明匿名函数,虽然封装在对象内部了,但没个对象会有不同的函数版本,浪费内存 oWorker.tellSalary=function(){ alert(this.salary); } return oWorker; } var worker1=createWorker(24,1000,"Dev"); worker1.tellSalary(); var worker2=createWorker(24,3000,"Dev"); worker2.tellSalary();
构造函数方式
在构造函数内部不创建对象,使用this关键字,创建时候用new操作符,如果把函数声明在内部,存在和工厂方式相同的问题,重复创建函数。为每个对象都创建独立的函数版本。放在外部,封装性不好
function Worker(sAage,sSalary,sDepartment){ this.age=sAage; this.salary=sSalary; this.department=sDepartment; //同工厂方式 this.tellSalary=showSalary; //同工厂方式 this.tellSalary=function(){ alert(this.salary); } } var worker3=new Worker(24,1000,"Dev"); worker3.tellSalary(); var worker4=new Worker(24,3000,"Dev"); worker4.tellSalary();
原型方式,创建对象时不能使用构造传递参数,必须先创建对象,然后改变属性的值
function Worker(){ } Worker.prototype.age=24; Worker.prototype.salary=1000; Worker.prototype.department="Dev"; Worker.prototype.homeaddress=new Array("www","dd"); // 创建多个对象时,要想一想此处为什么不会和构造函数方式及工厂方式一样,创建多个函数的实例 //要理解prototype的概念,prototype是父对象的一个实例 Worker.prototype.tellSalary=function(){ alert(this.age); } var worker5=new Worker(); var worker6=new Worker(); worker5.tellSalary(); alert(worker5.homeaddress) //修改原型中引用类型的值,会影响到所有已经实例化的对象 worker6.homeaddress.push("gg") alert(worker5.homeaddress)
混合原型和构造函数方式
可以传递参数构造对象,多个实例对象共享一个函数
function Worker(sAage,sSalary,sDepartment){ this.age=sAage; this.salary=sSalary; this.department=sDepartment; this.homeaddress=new Array("www","dd"); } //只创建tellSalary函数一个实例,没有内存浪费 Worker.prototype.tellSalary=function(){ alert(this.age); } var worker7=new Worker(23,3000,"Dev"); var worker8=new Worker(43,1000,"Dev"); worker7.tellSalary(); alert(worker7.homeaddress) // ww dd worker8.homeaddress.push("gg") alert(worker7.homeaddress) //www dd alert(worker8.homeaddress) // www dd gg
第四种的方式看上去也很散落,可以改进一下
var person=function(sname,sage){ this.name=sname; this.age=sage; }; person.prototype={ tellName:function(){ alert(this.name); }, tellAge:function(){ alert(this.age); } };
优点:
1. 可以传参数构造一个新对象
2. 当有多个对象产生时,不会创建多个函数实体,没有内存浪费
3. 封装想很好,属性和方法分开,
发表评论
-
Java Script 闭包
2014-11-14 20:46 740Javascript闭包就是在另一个作用域中保存了一份它从上一 ... -
dojo 的压缩
2012-03-26 17:06 13181. 命令 build.bat profile=foo ac ... -
JavaScript Compress
2011-06-14 15:58 10171. YUI java -jar yuicompress.j ... -
apply 使用的一个例子
2010-11-17 09:25 1061<html> <head> & ... -
Google 地图的一些资料
2010-11-17 09:22 1017国内一个google map api 开发者的博客 http: ... -
JQuery 对一些特殊HTML元素的操作
2010-11-17 09:12 10711. $("#select_id").ch ... -
javascript compress
2010-10-08 15:51 10601. packer 2. dojo 3. ie 内存泄露探 ... -
扩展Jquery
2010-08-20 15:59 11041. 为jQuery添加全局函数 jQuery ... -
JavaScript 实现事件的广播,并让各个对象执行事件
2010-07-30 15:32 1760<html> <head> & ... -
在浏览器中使用flash 存储客户端数据
2010-07-28 11:05 13791. example 1 jStore fla ... -
IE中使用firebug
2010-07-19 09:09 11801. IE 中使用FireBug 在页面中引入 firbug ... -
javascript 正则表达式应用两例
2010-05-13 10:19 1321Javascript 正则表达式 1. test reg ... -
tinymce 应用四---为tinymce添加一个plugin
2010-04-21 16:33 7808如何为TinyMce写一个插件 1. 目录切换到tiny_m ... -
tinymce 应用 三
2010-02-21 14:34 1869在ToolBar上添加一个listbox <scri ... -
tinymce 应用 二
2010-02-21 14:07 1829在源代码编辑器和所见即所得编辑器之间进行切换 <fo ... -
tinymce 应用 一
2010-02-21 13:35 2970添加去除Tool Bar <script type=& ... -
不同浏览器的JavaScript 常见问题
2009-11-25 15:28 10841. 在ie6下点a标签不会submit,原来在a的href上 ... -
JavaScript 对象实现继承的几种方式
2009-05-26 11:12 2609先定义一个对象classA,我们要实现一个新对象,继承clas ...
相关推荐
3 Android SqliteManager 源码.zip
内容概要:本文详细介绍了基于S7-200 PLC的煤矿排水系统智能控制方案,重点讨论了三台水泵(两台工作水泵和一台备用水泵)的联动与备援策略。系统通过超声波液位传感器实时监测水位,根据不同水位情况自动控制水泵的启停。具体而言,水位低时不启动水泵,水位介于中水位和高水位之间时启动1号水泵,水位超过高水位则启动1号和2号水泵共同工作。若1号或2号水泵出现故障,系统会自动启用3号备用水泵。此外,MCGS6.2组态画面用于实时监控水位和水泵状态,帮助操作员及时应对异常情况,确保矿井安全。 适合人群:从事煤矿自动化控制领域的技术人员、矿业工程管理人员及相关研究人员。 使用场景及目标:适用于需要提高煤矿排水系统自动化水平的场合,旨在提升矿井排水效率和安全性,减少人工干预,确保矿井生产安全。 其他说明:文中提到的技术方案不仅提高了排水系统的可靠性,还为未来的智能化矿山建设提供了有益借鉴。
scratch少儿编程逻辑思维游戏源码-灌篮之王.zip
scratch少儿编程逻辑思维游戏源码-飞翔马里奥(2).zip
scratch少儿编程逻辑思维游戏源码-火柴人大战 中世纪战争.zip
scratch少儿编程逻辑思维游戏源码-几何冲刺(2).zip
南京证券-低轨卫星互联网启动,天地一体通信迈向6G
nginx-1.20.1
sshpass-1.06-8.ky10.aarch
少儿编程scratch项目源代码文件案例素材-我的世界2D(更新北极).zip
通信行业专题研究:车载全息数字人——AI+Agent新场景,全息投影新方向-20231121-国盛证券-13页
内容概要:本文详细介绍了利用西门子S7-200 PLC和组态王软件构建的邮件分拣系统的具体设计方案和技术细节。首先,文中阐述了硬件部分的设计,包括光电传感器、传送带电机以及分拣机械臂的连接方式,特别是旋转编码器用于精确测量包裹位移的技术要点。接着,展示了PLC编程中的关键代码段,如初始化分拣计数器、读取编码器数据并进行位置跟踪等。然后,描述了组态王作为上位机软件的作用,它不仅提供了直观的人机交互界面,还允许通过简单的下拉菜单选择不同的分拣规则(按省份、按重量或加急件)。此外,针对可能出现的通信问题提出了有效的解决方案,比如采用心跳包机制确保稳定的数据传输,并解决了因电磁干扰导致的问题。最后,分享了一些现场调试的经验教训,例如为减少编码器安装误差对分拣精度的影响而引入的位移补偿算法。 适合人群:从事自动化控制领域的工程师或者对此感兴趣的初学者。 使用场景及目标:适用于需要提高邮件或其他物品自动分拣效率的企业或机构,旨在降低人工成本、提升工作效率和准确性。 其他说明:文中提到的实际案例表明,经过优化后的系统能够显著改善分拣性能,将分拣错误率大幅降至0.3%,并且日均处理量可达2万件包裹。
scratch少儿编程逻辑思维游戏源码-机械汽车.zip
内容概要:本文详细探讨了在连续介质中利用束缚态驱动设计并实现具有最大和可调谐手征光学响应的平面手征超表面的方法。文中首先介绍了comsol三次谐波和本征手性BIC(束缚态诱导的透明)两种重要光学现象,随后阐述了具体的手征超表面结构设计,包括远场偏振图、手性透射曲线、二维能带图、Q因子图和电场图的分析。最后,通过大子刊nc复现实验验证了设计方案的有效性,并对未来的研究方向进行了展望。 适合人群:从事光学研究的专业人士、高校物理系师生、对光与物质相互作用感兴趣的科研工作者。 使用场景及目标:适用于希望深入了解手征超表面设计原理及其光学响应机制的研究人员,旨在推动新型光学器件的研发和技术进步。 其他说明:本文不仅展示了理论分析和模拟计算,还通过实验证明了设计方法的可行性,为后续研究奠定了坚实的基础。
少儿编程scratch项目源代码文件案例素材-位图冒险.zip
少儿编程scratch项目源代码文件案例素材-校园困境2.zip
少儿编程scratch项目源代码文件案例素材-兔子吃萝卜.zip
scratch少儿编程逻辑思维游戏源码-海洋战争.zip
房地产 -前策标准化-沪浙一部.pptx
scratch少儿编程逻辑思维游戏源码-克里斯历险记3.zip