javascript的类、委托、事件
javascript中的类:
javascript中的类
function Person(name, age) {
this._name = name;
this._age = age;
//对应Name的Get,Set方法,这个和Java的属性写法很像。
this.getName = function() {
return this._name
};
this.setName = function(name) {
this._name = name;
}
//对应Age的Get,Set方法
this.getAge = function() {
return this._age;
}
this.setAge = function(age) {
this._age = age;
}
//显示Person的信息方法
this.show = function() {
alert("Name:" + this.getName() + "; Age:" + this.getAge());
}
} //空构造方法
var p1 = new Person();
p1.setName("Southsea");
p1.setAge();
p1.show(); //带参的构造方法
var p2 = new Person("Southsea", );
p2.show();
//注:Javascript中没有真正的方法重载
看起来很简单吧。
下面我们把Pererson类的show方法加一个参数,让它具有委托的功能。
委托
function Person(name, age) {
this._name = name;
this._age = age;
//对应Name的Get,Set方法,这个和Java的属性写法很像。
this.getName = function() {
return this._name
};
this.setName = function(name) {
this._name = name;
}
//对应Age的Get,Set方法
this.getAge = function() {
return this._age;
}
this.setAge = function(age) {
this._age = age;
}
//显示Person的信息方法
this.show = function(delegate) {
if (delegate) {
delegate(this);
}
}//只有这段与上面的不同。
} //订阅Person类的show
function showPerson(p) {
alert("Name:" + p.getName() + "; Age:" + p.getAge());
} var p = new Person("Southsea", );
p.show(showPerson); //别写成p.show(showPerson());哦
javascript中的事件
事件
function Person(name, age) {
this._name = name;
this._age = age;
//对应Name的Get,Set方法,这个和Java的属性写法很像。
this.getName = function() {
return this._name
};
this.setName = function(name) {
this._name = name;
}
//对应Age的Get,Set方法
this.getAge = function() {
return this._age;
}
this.setAge = function(age) {
this._age = age;
}
this.onShow = null;//加了onshow事件
//显示Person的信息方法
this.show = function() {
if (this.onShow) {
this.onShow(this);
}
}
} //订阅Person类的show
function showPerson(p) {
alert("Name:" + p.getName() + "; Age:" + p.getAge());
} var p = new Person("Southsea", );
p.onShow = showPerson; //千万别写成p.onShow = showPerson();
p.show();
委托和事件都看起来很简单吧。
javascript的动态类,它的格式是与JSON一样的。
动态类
var person = {
"Name": "Southsea",
"Age": , "show": function() {
alert("Name:" + person.Name + "; Age:" + person.Age);
}
};
person.show();
javascript的类、委托、事件的更多相关文章
- JavaScript面试问题:事件委托和this
JavaScript不仅门槛低,而且是一门有趣.功能强大和非常重要的语言.各行各业的人发现自己最混乱的选择是JavaSscript编程语言.由 于有着各种各样的背景,所以不是每个人都对 ...
- JavaScript中事件委托(事件代理)详解
在JavaScript的事件中,存在事件委托(事件代理),那么什么是事件委托呢? 事件委托在生活中的例子: 有三个同事预计会在周一收到快递.为签收快递,有两种办法:一是三个人在公司门口等快递:二是委托 ...
- JavaScript进阶系列06,事件委托
在"JavaScript进阶系列05,事件的执行时机, 使用addEventListener为元素同时注册多个事件,事件参数"中已经有了一个跨浏览器的事件处理机制.现在需要使用这个 ...
- 谈谈.NET中常见的内存泄露问题——GC、委托事件和弱引用
其实吧,内存泄露一直是个令人头疼的问题,在带有GC的语言中这个情况得到了很大的好转,但是仍然可能会有问题.一.什么是内存泄露(memory leak)?内存泄露不是指内存坏了,也不是指内存没插稳漏出来 ...
- .NET中常见的内存泄露问题——GC、委托事件和弱引用
一.什么是内存泄露(memory leak)? 内存泄露不是指内存坏了,也不是指内存没插稳漏出来了,简单来说,内存泄露就是在你期待的时间内你程序所占用的内存没有按照你想象中的那样被释放. 因此什么是你 ...
- python 全栈开发,Day55(jQuery的位置信息,JS的事件流的概念(重点),事件对象,jQuery的事件绑定和解绑,事件委托(事件代理))
一.jQuery的位置信息 jQuery的位置信息跟JS的client系列.offset系列.scroll系列封装好的一些简便api. 一.宽度和高度 获取宽度 .width() 描述:为匹配的元素集 ...
- 理解js事件冒泡事件委托事件捕获
js事件冒泡 javascript的事件传播过程中,当事件在一个元素上出发之后,事件会逐级传播给先辈元素,直到document为止,有的浏览器可能到window为止,这就是事件冒泡现象. <di ...
- C# ~ 从 委托事件 到 观察者模式 - Observer
委托和事件的部分基础知识可参见 C#/.NET 基础学习 之 [委托-事件] 部分: 参考 [1]. 初识事件 到 自定义事件: [2]. 从类型不安全的委托 到 类型安全的事件: [3]. 函数指针 ...
- Javascript并发模型和事件循环
Javascript并发模型和事件循环 JavaScript的"并发模型"是基于事件循环的,这个并发模型有别于Java的多线程, javascript的并发是单线程的. Javas ...
- C#委托,事件理解入门 (译稿)
原文地址:http://www.codeproject.com/Articles/4773/Events-and-Delegates-Simplified 引用翻译地址:http://www.cnbl ...
随机推荐
- HTML 5 服务器发送事件
接收 Server-Sent 事件通知 EventSource 对象用于接收服务器发送事件通知: 实例 var source=new EventSource("demo_sse.php&qu ...
- poj1068 模拟
Parencodings Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 25010 Accepted: 14745 De ...
- 状态压缩DP
K - Necklace Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:327680KB ...
- c#面向对象基础 类、方法、方法重载
C#是纯粹的面向对象编程语言,它真正体现了“一切皆为对象”的精神.在C#中,即使是最基本的数据类型,如int,double,bool类型,都属于System.Object(Object为所有类型的基类 ...
- Canvas 属性,方法
context . restore() //弹出堆最上面保存的绘图状态 context . save() //在绘图状态堆上保存当前绘图状态 绘图状态可以看作当前画面应用的所有样式和变形的一个快照 ...
- div自定义的滚动条 (水平导航条)
<!DOCTYPE html> <html> <head> <title></title> <style> div{ /* wi ...
- for memory long term update
xargs是一条Unix和类Unix操作系统的常用命令.它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题. #例如,下面的命令: rm `find /path -type f ...
- 创建一个LinkedList,然后在其中插入多个值,确保每个值都插入到List中间(偶数中间两个数之一,奇数在正中间)
这是Thinking in java 中的一道题,下面是我的解决方案: package test; import java.util.LinkedList; import java.util.List ...
- java编程思想恶心的enum状态机示例
下面是一个包装输入的类 package test; import java.util.Random; public enum Input { NICKEL(5) , DIME(10) , QUARTE ...
- 10/12 study
[患者版]加号选择页: 这是四个TableView放在Scrollview上 上面是个xib封装的view 整体就是个scrollView,用xib摆上去的控件: 上面加了黄条,旧的控件统一修改y ...