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的类、委托、事件的更多相关文章

  1. JavaScript面试问题:事件委托和this

            JavaScript不仅门槛低,而且是一门有趣.功能强大和非常重要的语言.各行各业的人发现自己最混乱的选择是JavaSscript编程语言.由 于有着各种各样的背景,所以不是每个人都对 ...

  2. JavaScript中事件委托(事件代理)详解

    在JavaScript的事件中,存在事件委托(事件代理),那么什么是事件委托呢? 事件委托在生活中的例子: 有三个同事预计会在周一收到快递.为签收快递,有两种办法:一是三个人在公司门口等快递:二是委托 ...

  3. JavaScript进阶系列06,事件委托

    在"JavaScript进阶系列05,事件的执行时机, 使用addEventListener为元素同时注册多个事件,事件参数"中已经有了一个跨浏览器的事件处理机制.现在需要使用这个 ...

  4. 谈谈.NET中常见的内存泄露问题——GC、委托事件和弱引用

    其实吧,内存泄露一直是个令人头疼的问题,在带有GC的语言中这个情况得到了很大的好转,但是仍然可能会有问题.一.什么是内存泄露(memory leak)?内存泄露不是指内存坏了,也不是指内存没插稳漏出来 ...

  5. .NET中常见的内存泄露问题——GC、委托事件和弱引用

    一.什么是内存泄露(memory leak)? 内存泄露不是指内存坏了,也不是指内存没插稳漏出来了,简单来说,内存泄露就是在你期待的时间内你程序所占用的内存没有按照你想象中的那样被释放. 因此什么是你 ...

  6. python 全栈开发,Day55(jQuery的位置信息,JS的事件流的概念(重点),事件对象,jQuery的事件绑定和解绑,事件委托(事件代理))

    一.jQuery的位置信息 jQuery的位置信息跟JS的client系列.offset系列.scroll系列封装好的一些简便api. 一.宽度和高度 获取宽度 .width() 描述:为匹配的元素集 ...

  7. 理解js事件冒泡事件委托事件捕获

    js事件冒泡 javascript的事件传播过程中,当事件在一个元素上出发之后,事件会逐级传播给先辈元素,直到document为止,有的浏览器可能到window为止,这就是事件冒泡现象. <di ...

  8. C# ~ 从 委托事件 到 观察者模式 - Observer

    委托和事件的部分基础知识可参见 C#/.NET 基础学习 之 [委托-事件] 部分: 参考 [1]. 初识事件 到 自定义事件: [2]. 从类型不安全的委托 到 类型安全的事件: [3]. 函数指针 ...

  9. Javascript并发模型和事件循环

    Javascript并发模型和事件循环 JavaScript的"并发模型"是基于事件循环的,这个并发模型有别于Java的多线程, javascript的并发是单线程的. Javas ...

  10. C#委托,事件理解入门 (译稿)

    原文地址:http://www.codeproject.com/Articles/4773/Events-and-Delegates-Simplified 引用翻译地址:http://www.cnbl ...

随机推荐

  1. Nodejs中cluster模块的多进程共享数据问题

    Nodejs中cluster模块的多进程共享数据问题 前述 nodejs在v0.6.x之后增加了一个模块cluster用于实现多进程,利用child_process模块来创建和管理进程,增加程序在多核 ...

  2. [CareerCup] 17.1 Swap Number In Place 互换位置

    17.1 Write a function to swap a number in place (that is, without temporary variables). 这道题让我们交换两个数, ...

  3. for循环练习

    1.输入一个整数,计算从1加到这个数的结果int sum = 0;Console.WriteLine("请输入一个正整数");int a = int.Parse(Console.R ...

  4. javax.servlet.jsp cannot be resolved to a type

    参考链接 :http://www.tuicool.com/articles/7Njmqy

  5. Uc爆破工具

    #coding:utf-8 import requests import sys from threading import Thread from Queue import Queue NUM=5 ...

  6. MVC概念性的内容

    MVC:    是一个缩写(model + view + control),      Model:是一些类文件,  功能:负责增删改查, 负责跟数据库打交道 (把数据存入到数据库: 从数据库把数据读 ...

  7. BizTalk开发系列(三十)单向端口实现请求-响应

    BizTalk本质上是异步的消息处理引擎.BizTalk的请求与响应模式是基于异步之上的同步消息交换.消息引擎通过消息的扩展架构链接许 多异步消息,消息的相关集关联请求与响应消息.例如,客户端发送一个 ...

  8. poj2142-The Balance(扩展欧几里德算法)

    一,题意: 有两个类型的砝码,质量分别为a,b;现在要求称出质量为d的物品, 要用多少a砝码(x)和多少b砝码(y),使得(x+y)最小.(注意:砝码位置有左右之分). 二,思路: 1,砝码有左右位置 ...

  9. shopnc 支持 支付宝快捷登陆 shopnc权限验证原理说明

    为目前使用的是shopnc商场二次开发,shopnc本身做了qq互联和微博快捷登陆的api,做成了集成通用的接口 首先说下基本的这种类型的api访问方式,首先,的有个配置文件,配置你申请的id和key ...

  10. Markdown语法速查

    Markdown教程:http://wowubuntu.com/markdown/ h1 # h1 h2 ## h2 h3 ### h3 h4 #### h4 h5 ##### h5 h6 ##### ...