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 ...
随机推荐
- ckedit 文本编辑器
Ckeditor是一个功能非常强大的富文本编辑器,博客园有使用此编辑器,其功能完全可以与MS的Word媲美. 用起来也非常方便.下面是本人总结的安装步骤: 第一步,从http://ckeditor.c ...
- Dependency Injection
Inversion of Control - Dependency Injection - Dependency Lookup loose coupling/maintainability/ late ...
- php内网探测脚本&简单代理访问
<?php $url = isset($_REQUEST['u'])?$_REQUEST['u']:null; $ip = isset($_REQUEST['i'])?$_REQUEST['i' ...
- 一些变态的PHP一句话后门收集
这类后门让网站.服务器管理员很是头疼,经常要换着方法进行各种检测,而很多新出现的编写技术,用普通的检测方法是没法发现并处理的.今天我们细数一些有意思的PHP一句话木马. 利用404页面隐藏PHP小马 ...
- js在输出时乱码
如果网页头是<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> ...
- c++ basic 整理2
//拷贝函数 //拷贝构造函数是一种特殊的构造函数,函数的名称必须和类名称一致,它必须的一个参数是本类型的一个引用变量. //不显式指定拷贝函数时,编译器会生成默认拷贝函数. //使用默认拷贝函数 ...
- BizTalk动手实验(六)Orchestration开发
1 课程简介 通过本课程熟悉Orchestration的相关开发与测试技术 2 准备工作 熟悉XML.XML Schema.XSLT等相关XML开发技术 熟悉.NET相关开发技术 新建BizTalk空 ...
- Android课程---单选框与复选框的实现
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="ht ...
- Apache按日切分日志
apache按日切分日志,使用apache自带的rotatelogs切分 语法: rotatelogs [ -l ] logfile [ rotationtime [ offset ]] | [ fi ...
- 20145209&20145309信息安全系统设计基础实验报告 (4)
实验步骤 阅读和理解源代码 demo_read,demo_write 函数完成驱动的读写接口功能,do_write 函数实现将用户写入的数据逆序排列,通过读取函数读取转换后的数据.这里只是演示接口的实 ...