`
wangli9li
  • 浏览: 34717 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JavaScript快速充电

阅读更多
JavaScript快速充电
Netscape发明的,思想来自函数语言Schema和Self,有点接近Python.
特征:弱类型,动态解析,函数是对象,对象基于Prototype
前三个特征容易理解,最后一个要重点解释。

最基本的最佳实践:在大型程序中使用Fuction和对象!不要流水账式编程。

The easiest way to create an object is:
var myObject = new Object();

JavaScript对象本质上是关联数组。

小提示:注意将函数赋给变量时使用functionName()与functionName的区别,前者是将函数的结果付给变量,而后者将函数引用付给变量。

可以使用JSON创建和修改JavaScript对象,JavaScript也可以修改JSON创建的对象。

构造函数/类/prototype属性
JavaScript也有对象和类的概念,但是没有内建继承的概念。事实上,每个JavaScript对象都是相同基类的实例。这个基类有能力在运行时将成员字段和函数与自己绑在一起。

安全的替代品:prototype属性
prototype是JavaScript对象的一个属性,在OO语言中没有对等物。函数和属性可以与构造函数的prototype关联起来。然后prototype和new关键字协同工作,当使用new调用函数时,函数prototype的所有属性和方法会附加到结果对象上。
function MyObject(name, size){
this.name = name;
this.size = size;
}

MyObject.prototype.tellsize = function(){
alert("size of "+this.name+" is "+this.size);
}

var myObj = new MyObject("tiddles", "7.5 meters");
myObj.tellSize();


注意,在声明构造函数之后,我们才能引用prototype,对象之恩那个继承那些在调用构造函数之前就已经附加到prototype上的东西。prototype可以在两次调用构造函数之间进行修改,并且可以附加任何东西,不仅仅是函数,到prototype上。

使用prototype来为JavaScript对象定义类似于类的行为,是一条安全和可靠的路径。

扩展内建类
在Web浏览器中,一些核心类是可以通过prototype机制进行扩展的。
Array.prototype.indexOf = function(obj) {
var result = -1;
for (var i=0; i< this.length; i++) {
if (this[i]==obj){
result=i;
break;
}
}
}


prototype的继承
JavaScript没有本地实现,不过有一些灵巧的变通方法。

JavaScript对象的反射
用于发现对象的类型

事件处理和函数上下文
在编程方式声明Dom元素的事件处理函数时,即使没有为函数分配参数,当点击Dom元素时,Event对象作为了函数调用的参数,元素本身作为上下文对象。

如果希望事件处理函数引用它附加到的模型对象,有两种方法:
1.使用名称引用模型
建立全局数组保存模型对象名称与引用对应关系,使用模型对象名称作为id的一部分建立Dom对象,利用Dom对象id的前缀在全局数组中查找模型对象。
2.向Dom节点附加模型
在Dom对象和模型对象之间创建循环引用。注意内存泄漏问题。

闭包
Function对象本身是不完整的——为了调用他,我们需要传入一个上下文对象和一组参数,在最简单的情况下,闭包可以看作是捆绑了运行所需所有资源的Function对象。

function Robot(){
var createTime = new Date();
this.getAge = function(){
var now = new Date();
var age = now-createTime;
return age;
}
}


闭包仅仅当内部函数创建在外部函数之内的时候才能工作。

闭包与外部函数的本地变量绑在一起,使得外部函数不能被垃圾回收。

创建闭包的最常见场合时将事件处理回调函数绑定到事件源上。

对水平一般的Ajax程序员的建议是:如果有替代方法,就避免使用闭包。如果使用prototype来给自定义对象类型分配函数,那么你就不会重复创建函数,也不会创建闭包。
function Robot(){
this.createTime = new Date();
}

Robot.prototype.getAge = function(){
var now = new Date();
var age = now - this.createTime;
return age;
}


分享到:
评论

相关推荐

    HTML 4 快速充电

    这个"HTML 4 快速充电"的学习资源显然旨在帮助用户迅速掌握HTML 4的核心概念和技术。以下是对这些关键知识点的详细阐述: 1. **创建Web图像**:在HTML中,`&lt;img&gt;`标签用于插入图像。它需要`src`属性来指定图像的URL...

    html4快速充电

    HTML4快速充电教程是针对那些想要深入理解和掌握HTML4这一早期网页制作语言的学习者们的一份宝贵资源。HTML,全称HyperText Markup Language,是一种用于创建网页的标准标记语言,其第4版本在互联网发展的初期扮演了...

    新能源车充电协议OCPP2.0

    6. **故障诊断和报告**:充电桩能自动报告故障信息,便于快速定位和修复问题。 7. **兼容性**:OCPP 2.0设计时考虑到了向后兼容,能够与OCPP 1.x版本的设备协同工作,降低了升级成本。 **三、关键功能** 1. **...

    高速公路服务区充电桩在线预订系统设计微信小程序.zip

    随着新能源汽车行业的快速发展,对配套充电设施的需求日益增长。高速公路服务区作为重要的行车休息点,成为了设置充电桩的理想场所。为了满足驾驶者在行驶过程中对充电服务的即时需求,同时提高充电设施的使用效率,...

    基于SpringCloud等技术的充电桩Saas云平台管理后台设计源码

    本项目是一款基于SpringCloud等技术的充电桩SaaS云平台管理后台源代码,包含327个文件,涵盖115个SVG文件、89个Vue组件、83个JavaScript文件、16个PNG图片、8个SCSS样式文件、3个批处理文件、3个JPG图片、2个JSON...

    艾默生充电桩15kw模块+台达三相PFC源程序 艾默生充电桩15kw模块+台达三相PFC源码,软件源码加原理 图BOM 艾默生充电桩15kw模块原版软件源码含核心算法,PFC+DCDC双DSP数字控制

    1. 艾默生充电桩15kw模块是艾默生公司生产的快速充电设备的一个模块,具备15千瓦的充电能力,适用于电动车的快速充电需求。 2. 台达三相PFC(功率因数校正)源程序涉及台达电子公司提供的三相交流电的功率因数校正...

    基于Vue框架的电动车充电桩EVCharger前端设计源码及AWS IoT集成

    在JavaScript文件中,我们可能找到与Vue组件交互的脚本代码,控制着充电桩的启动逻辑、数据处理以及与AWS IoT平台的通信等功能。HTML文件则可能包含了充电桩用户界面的基本结构,如充电启动页面和后台管理页面的布局...

    springboot735车辆充电桩--论文.rar

    电动汽车的普及离不开完善的充电设施支持,特别是快速充电站的建设。本文将深入探讨一个名为“springboot735车辆充电桩”的项目,该项目采用Java作为后端开发语言,前端界面则使用Vue框架,结合Spring Boot框架进行...

    基于vue的新能源充电系统 前端vue后端springboot

    Vue.js是一个渐进式的JavaScript框架,专注于视图层,易于上手并且支持单页面应用的开发。在新能源充电系统中,Vue可以负责管理用户界面,提供动态数据绑定和组件化的用户界面,使得系统能够提供良好的用户体验和...

    java-springboot+vue车辆充电桩系统源码(完整前后端+mysql+说明文档+LunW).zip

    随着智能城市和物联网技术的发展,...对于学校的学生而言,这可以是一个非常好的毕业设计项目,通过这个项目可以学到企业级应用开发的完整流程,对于工作中的开发者来说,这可以是一个快速搭建车辆充电桩系统的模板。

    新能源用高压充电桩温度控制系统

    这个系统由前端界面、后端服务器以及与充电桩交互的硬件部分组成,融合了HTML、CSS和JavaScript等技术。 一、前端界面设计(HTML & CSS) 前端部分主要负责展示系统的用户界面,包括实时温度显示、历史数据图表、...

    基于java的车辆充电桩答辩PPT.pptx

    处理用户充电请求则需要优化算法以保证用户能快速找到空闲的充电桩并开始充电;计费系统则需要根据不同的计费策略来计算费用;用户管理模块则包括了用户的注册、登录、账户管理等功能;历史数据分析则为运营方提供...

    电动车智能充电服务平台--论文.zip

    用户可以通过平台快速找到最近的充电桩,进行预约充电,并实时查看充电状态。此外,平台还可以根据用户的使用习惯和历史数据,为用户推荐合适的充电方案,优化充电体验。 智能充电服务平台在技术实现上,会涉及前端...

    基于java SpringBoot和Vue uniapp的汽车充电桩微信小程序.zip

    - 使用SpringBoot可以快速构建RESTful API,这在微信小程序这样的轻量级应用中非常常见,用于提供数据接口供前端调用。 - SpringBoot内置了Tomcat服务器,使得应用可以直接运行,无需额外配置。 2. **Vue.js**: ...

    基于ssm电动车智能充电服务平台.zip

    1. **充电站定位**:通过集成地图API,用户可以快速找到附近的充电站,查看充电设施信息。 2. **预约充电**:用户可以提前预约充电位,避免到达现场无处充电的情况。 3. **支付系统**:集成第三方支付接口,如微信...

    基于Java及跨平台技术的充电应用设计源码

    本文详细介绍了基于Java及跨平台技术的充电应用设计源码项目,该项目通过Java语言开发,并融合前端技术如HTML、CSS、JavaScript和Vue框架,成功构建了一个全面的充电服务系统。这个系统具备了722个Java源文件,以及...

    基于SpringBoot+Vue的充电宝管理系统设计源码

    整个系统分为后端服务和前端展示两大部分,后端服务主要使用Java语言编写,利用SpringBoot框架快速搭建,保证了系统的稳定性和高效率。前端部分则主要采用Vue技术栈,辅以JavaScript、CSS和HTML,提供了一种流畅且...

    充电桩内置电源电流配置管控系统

    JS(JavaScript)是一种强大的客户端脚本语言,用于实现网页的交互功能。在充电桩系统中,JS可以处理用户的输入,如选择电流强度、预约充电时间,以及实时反馈充电桩的状态信息,如电量、充电进度等。此外,它还可以...

    springboot339javaweb的新能源充电系统pf.zip

    系统后端基于Spring Boot框架构建,它简化了企业级应用的开发流程,并且具有强大的生产就绪特性,使得系统能够快速部署并稳定运行。数据库方面,可以采用关系型数据库,如MySQL,来存储用户信息、充电记录、订单数据...

    充电桩项目前端_-.zip

    这些框架和库能帮助开发者快速构建用户界面,并保证应用的性能和可维护性。 除了基础的前端技术,充电桩项目前端可能还会集成地图服务API,以便用户能够找到附近的充电桩位置。这就需要与地图服务提供商进行接口...

Global site tag (gtag.js) - Google Analytics