`
wangli9li
  • 浏览: 33969 次
  • 性别: 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. **...

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

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

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

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

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

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

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

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

    新能源汽车高压超充电热转化显示系统

    这种系统通过精确的电流和电压控制,确保在快速充电时避免电池过热和损坏,从而延长电池寿命,提升整体性能。为了实现这一点,系统可能包含复杂的算法,如功率平衡算法和温度预测模型,这些都与软件编程密切相关。 ...

    基于springboot车辆充电桩管理系统.zip

    3. **资源文件**:如静态资源(HTML、CSS、JavaScript)和模板引擎文件(Thymeleaf、Freemarker等)。 4. **数据库脚本**:用于创建和初始化数据库表结构。 5. **pom.xml**:Maven项目配置文件,定义了项目的依赖...

    中南大学课设-微信小程序充电桩.docx

    1. **微信小程序开发**:微信小程序是一种轻量级的应用开发平台,允许开发者快速构建可以在微信内运行的应用。在这个项目中,微信小程序被用来设计用户界面,实现用户注册、钱包管理、扫码充电等功能,并能查找附近...

    javaweb的新能源充电系统论文-java-javaweb的新能源充电系统-文档-论文

    - **框架**:Spring Boot,一个简化Spring应用开发的框架,支持自动配置、外部化配置等功能,适用于快速构建独立的生产级Spring应用程序。 #### 2.2 架构与工具 - **架构**:B/S架构和MVC模式,前者指的是浏览器/...

    这是一款有趣的微信余额充电器特效小程序源码,用户可以在模拟自己的微信余额的同时,插上手机充电器,看着余额随着充电而增长,给人一种

    - **用户体验**:注重提供简单易用的操作界面和直观的视觉反馈,确保用户能够快速上手并获得乐趣。 #### 三、技术实现 ##### 3.1 前端开发框架 - **框架选择**:考虑到微信小程序自身的开发环境限制,开发者可能会...

    基于SpringBoot的车辆充电桩信息管理系统毕业设计源码(源代码+论文)

    在本项目中,SpringBoot提供了快速开发服务端应用的能力,包括自动配置、依赖注入、安全控制等,使得开发过程更为便捷。 2. **Java编程语言**:作为后台开发的主要语言,Java以其跨平台性、稳定性和丰富的类库被...

    基于SSM的充电桩管理系统源码.zip

    SpringBoot内置了Tomcat服务器,自动配置了许多Spring组件,让开发者能快速搭建一个运行环境。 这个项目可能包括以下功能模块: - 充电桩信息管理:增删改查充电桩信息,包括位置、状态等。 - 用户管理:用户注册、...

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

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

    粒蚂充电APP下载页html5源码

    这款源码可以帮助开发者快速构建一个吸引眼球且功能完善的APP下载页面,以促进用户的下载和安装。 在HTML5源码中,我们通常会看到以下关键知识点: 1. **HTML5语义化标签**:HTML5引入了许多新的语义化元素,如、...

    衔电街电共享充电宝仿云海可打包成app

    - `Public`:通常存放静态资源,如CSS、JavaScript和图片。 - `APP`:可能是移动端应用的相关代码或资源。 总的来说,这个项目是一个基于PHP的共享充电宝服务平台,它结合了移动支付、短信通知、社交分享等功能,...

    powercells:创建用于与MegaCell充电器进行通信的网站

    这可能包括但不限于实时电量显示、充电状态监控(如充电速度、电池温度等)、充电模式设置(快速充电、涓流充电等)以及远程控制功能。因此,网站的主要功能可能围绕这些方面展开。 在JavaScript层面,我们可以利用...

    (PC+WAP)蓝色弹簧针厂家网站pbootcms模板 探针充电连接器网站源码下载.zip

    总之,这个资源提供了一个适用于弹簧针和探针充电连接器制造企业的网站模板,利用PbootCMS的易用性和灵活性,可以帮助企业快速建立专业且具有吸引力的在线平台。同时,源码的可定制性也让开发者可以根据业务需求进行...

Global site tag (gtag.js) - Google Analytics