Web开发时,我们可能经常抱怨,javascript。它太耗时间精力,甚至让我们觉得它恶心。服务器端,我们有优秀的java语言和webwork、spring等框架来帮助我们提高效率。而客户端只有灵活、难以掌握的javascript,那么我们的希望在哪呢?但愿下面的内容能够对你有些帮助。
1、它是怎样的?
Javascript目前由二块构成:Core(核心部分)+DOM实现部分。(DOM是w3c定义的针对HTML、XML文档编程的一系列接口。通过这些接口,我们可以改变文档结点的结构、样式、内容。实现这些接口的语言可以是java、Python,javascript等。)
Core
|
定义了语法规则,及内置的全局对象(Date、Function等),全局方法(parseFloat),全局属性(NaN,undefined等)
|
Dom
|
针对HTML文档与XML文档操作的API
|
2、 慢在哪?
2.1、java VS javascript
Java是面向对象的代表性语言之一,面向对象语言是时下比较流行、开发效率高的主流开发语言。面向对象语言包括几个主要特性:抽象,继承,封装和多态。Javascript本质上不是面向对象的,而是基于对象的。基于对象的语言对上面四个特性支持很差,或者只支持部分特性。
|
抽象
|
继承
|
多态
|
封装
|
java
|
具备:类,接口,抽象类四个概念
|
支持:
通过关键字
Extends,implements实现
|
支持:
1)表现在对象的方法可以重载
2)子类可以被当作父类处理
|
支持:
private,
friendly,
protected,
public
四个级别的封装
|
javascript
|
仅具备:
类,这一个概念
|
支持很差:
通过prototype实现;
Function的apply或call方法间接实现。
|
不支持
|
支持很差:仅支持private,
public二个级别
|
比较结果
|
1恶劣的继承导致:无法实现子类与父类之间关系的判断,并且子类无法转化成父类。所以无法根据类的类型处理业务:处理父类的代码,无法处理子类。——扩展性差
2 陈旧的代码书写方式导致:本不好的封装性变的更加差劲。这样对象间的隔离成本增加,内聚性弱。
|
大大降低了开发效率
|
2.2、浏览器的兼容性
Core与Dom部分都存在着浏览器平台的差异性,进一步降低了开发的效率。
3、 开始加速
3.1、加强封装性
提倡的写法
- function A(){
- var locate1 = "1oh";
- this.locate2 = "2oh";
- var method1 = function(){
- alert(locate1);
- }
- this.method2 = function(){
- alert(this.locate2);
- method1();
- }
- }
A对象的locate1与method1是private级别的; locate2与method2是public级别的。
优点:封装性好,实现代码变化的隔离。
缺点:代码可读性差。
弥补方式:利用javascript的优秀插件,如:jseclipse。
禁止的写法
- function A(){
- var locate1 = "1oh";
- var method1= function(){
- alert(locate1);
- };
- }
- A.prototype={
- locate2:"2oh",
- method2:function(){
- alert(this.locate2);
- },
- method3:function(){
- alert(locate1);
- method1();
- }
- }
- var a = new A();
- a.method2();
- a.method3();
优点:代码可读性好。
缺点:
没有全局的私有变量
|
如果执行a.method3();根本无法访问变量locate1。
|
prototype中的方法是公共的。
|
a.method2()成功访问,在prototype中定义的方法是public级别;无法在prototype中定义全局的private变量。
|
总体效果
|
1) 封装性极其差
2) 代码调用不方便。
|
3.2 类继承
禁止写法
prototype继承
|
万恶之首:目前有很多继承写法,都是直接或者间接使用它。严重破坏封装性。
|
没法实现多态:只是简单的复用,这种继承意义不大。
|
apply,或者call
|
只是复用:简单的在当前对象中,执行对象之外的另一个方法。
|
这几种javascript的继承写法虽然目前被大量的使用,但是他们的缺点是明显的,因此我们不建议采用这些常见的javascript继承写法。
推荐写法
例子很长,先给大家一些看完的动力吧,下面是它的优点。
代码复用
|
如果A继承B,那么A可复用B中public级别的资源
|
单一,多层的继承
|
B可以继承C,A可以继承B,不存在A继承B又继承C。
|
多态
|
A是父类,B与C是A的子类,如果存在一个方法X,是处理A类的,那么它也能处理B与C类。扩展性好,容纳了变化:可以处理,将来因业务需求新建的D类。
|
待 续……[提速javascript开发(二)]
分享到:
相关推荐
车企敏捷开发:电动车开发再提速.pdf
首先,LinkedIn 的移动团队经历了从一个单独分离的移动组到移动工程师分布在各个产品组的演变。在这个过程中,团队成员从 30 人增加到超过 300 人。这也意味着,团队需要更好的协作和管理机制来确保快速交付。 要...
机械行业周报:油气开发提速,装备和服务强力反弹.pdf
JavaScript,简称JS,是一种广泛应用于Web开发的轻量级编程语言,主要负责处理网页的动态效果和用户交互。本教程“js全面基础与提速”旨在为学习者提供一个全面了解和掌握JavaScript的基础,并逐步深入到AJAX和...
一、我国能源安全与油气勘探开发提速: 我国能源安全问题得到国家高层的重视,中石油、中石化、中海油等企业积极响应,加快了国内油气勘探开发的步伐。这表明油气资源的保障对于国家能源安全具有至关重要的作用。低...
JavaScript是Web开发中不可或缺的一部分,尤其在现代网页设计中,其使用越来越广泛。然而,不同浏览器对JavaScript的处理效率存在差异,尤其是对于IE浏览器来说,虽然IE8在性能上有显著提升,但仍落后于如Chrome这样...
在新疆锂资源开发提速的背景下,不可避免地会面临一系列挑战。例如,如何在开发过程中保护好环境,如何平衡地方经济发展与资源保护的关系,如何提升锂资源开发的科技水平和效率,以及如何应对锂资源价格波动带来的...
通信行业2019年报&2020一季报总结:5G与云新基建提速,AIOT开启创新周期.pdf
国内电脑提速第一品牌。 . m2 B& q8 f# ~# a 与普通的电脑提速软件不同,电脑提速大师的提速方法,并非通过清理一下所谓的垃圾文件,删除一些注册表冗长数据。那样并不能达到真正的提速。电脑提速大师的四大提速大法...
【电脑提速软件(系统提速精灵)】是一种专为个人计算机设计的优化工具,旨在通过清理系统垃圾、管理启动项、优化内存使用等方法提升电脑运行速度。系统提速精灵集成了多种功能,帮助用户解决电脑卡顿、响应慢等问题...
银行业动态跟踪:零售转型提速,信用卡成发力重点.pdf
房地产行业周报:物管拓宽提速在即,开发调整以稳为主.pdf
北京联通提速降费方案:宽带免费升一倍.docx
### BPM:为业务流程管理提速 #### 一、BPM的重要性与价值 在全球经济面临挑战的背景下,企业管理层越来越意识到优化内部运作效率的重要性。BPM(Business Process Management,业务流程管理)作为一种有效的管理...
20210830-中信证券-计算机行业专题报告:国资云提速国企上云.pdf
在Debug文件夹下的exe文件在执行时会有窗口显示,且每隔半个小时会输出一次提速状态信息,如需停止提速,可直接关闭该软件窗口! 软件截图 提速后截图 哈勃:MD5值:402333da286e409d03ef2791f90afd15
通信行业周报:主题轮动提速,电子车牌和卫星通信成新热点.pdf
机械设备行业深度:油服行业研究系列之三:页岩气勘探开发提速,水平井增产设备与服务迎来第二轮大发展.pdf
- **背景介绍**:Visual Basic(简称VB)是一种由微软开发的事件驱动编程语言,广泛应用于Windows平台的应用开发。虽然其易学易用,但在处理复杂任务时可能会出现性能瓶颈。因此,掌握一定的提速技巧对于提高程序...
中国联通作为国内主要的电信运营商之一,为满足用户对高速网络的需求,推出了“联通宽带提速客户端”。这款客户端专为联通宽带用户设计,旨在帮助用户提升网络速度,进行网络测速,以确保用户享受更优质的上网体验。...