JavaScript的OOP编程2

我做了一个observer的设计模式实现

version1

// --------------------------------------------------
function Subject(){}
Subject.prototype.add = function(obj)
{
    if(typeof(obj.update) === "function")
    {
        this.objects.push(obj);
        return true;
    }
    return false;
}

Subject.prototype.notify = function(subject)
{
    for(var i in this.objects)
    {
        obj = this.objects[i];
        obj.update(subject);
    }
}

// --------------------------------------------------

function Subject1()
{
    Subject.call(this);
    this.objects = new Array();
    this.message = "hello";
}

Subject1.prototype = new Subject()
Subject1.prototype.update = function(s)
{
    if (s != null)
        this.message = s;
    this.notify(this);
}

// --------------------------------------------------
function Observer(){}
Observer.prototype.update = function(subject)
{
    alert(subject.message);
}

// --------------------------------------------------
var subject = new Subject1();
var observer = new Observer();

subject.add(observer);
subject.update();
subject.update("same world");

version2

时间: 2024-10-08 12:37:30

JavaScript的OOP编程2的相关文章

JavaScript的OOP编程1

首先要说的是,javascript其实是可以进行OOP编程的,其次javascript的OOP编程实现方式有多种,我写的这一种只是我测试过,可行的一种 version1 // 父类 function Person(name){this.name = name} Person.prototype.say = saymyname; function saymyname(){alert(this.name)} // 子类 function Employee(name){Person.call(this

javascript实现OOP编程

1.首先通过一个函数来实现JS的单继承.使用原型方式来实现继承 1 (function () { 2 3 $.extend({ 4 oop: { 5 extend: function (child, father) { 6 if (father == null) { 7 var father = function () { }; 8 console.log(this); 9 father.prototype = this 10 } 11 child.prototype = new father(

JavaScript之OOP编程

定义一个对象的最简单的方法 var car = { color:"red", drive:function() { alert(this.color + " car moved"); } } 这个方法不是在非常有用,因为它创建了一个单独的对象,而这个对象和任何常见的数据结构没有任何联系,为了创建第二个car实例,必须重新定义它的结构. 通过构造函数创建一个新对象 function Car() { this.color = "red"; this.

JavaScript的面向对象编程(OOP)(一)——类

在学习JavaScript面向对象的编程之前,需要知道,并了解面向对象的一些基本的常识.初学者中大多数都以为面向对象中,面向对象的编程是很重要和占据很大一部分精力.笔者在之前也是认为OOP是面向对象的主要部分,那么和我持有一样想法的,下面先要纠正这一想法,真正了解面向对象. 一.初识面向对象 面向对象分为三部分,包括面向对象分析(OOA).面向对象设计(OOD).面向对象的程序设计(OOP). 1.1 OO编程(Object Oriented Analysis) 典型的OO编程过程,应先整理需求

javascript oop编程 — 实现继承的三种形式

javascript  oop编程  - 实现继承的三种形式[1] (1)模拟类的方式, 我们都知道js是原型继承机制,不存在class和instance分离的这种方式 假设,我们有两个类 function  Animal(){ this.name = "animal"; this.eat = function(){ consle.log("eating"); } } function Cat(){ this.say = function(){ console.lo

Lua下通过元表模拟OOP编程,继承多态

Lua本身是没有以明确的定义来支持OOP编程的,但是我们却可以通过Lua内核提供的一些特性来间接实现简单的面向对象的编程. 通过Lua中的 table结构  metatable 以及函数可以配合实现OOP,以及继承.这些说白了都是一种伪实现,不建议在Lua下使用多重继承 . 在LUA中你想要 强制实现OOP 你必须需要懂一下几个关键词!! 什么是语法糖? 语法糖即糖衣语法,C/C++升级过程中的面向对象 整体就是一种语法糖 ,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)

JavaScript 表单编程

目标:主要是访问用户输入的表单数据,校验用户输入的正确性. 获取表单的引用: //方法一:将表单的ID作为方法的参数 var f1 = document.getElementById("f1"); //方法二:表单集合,得到第一个表单 var f2 = document.forms[0]; //方法三:得到名为fm的表单 var f3 = document.forms["fm"]; //方法四:简写 var f4 = document.fm 访问表单的元素: //获

【OOP编程思想小感悟】

写点啥...开头省略1000字,哈哈,开始讨论OOP编程思想啦~ 我来翻译一下OOP吧(面向对象编程) 最近一直在看C++的一本书,看到书中有这样一句话(我按我的意思概括一下哈):OOP是一种编程思想,和具体的编程语言无关.(这是真的么?) 我们继续说哈,话说我也已经工作快三年了,不过一直在做运维方面的工作(其实我不太喜欢,太麻烦),所以在技术方面略显木讷.(不说闲话了) 大学期间和我看到这句话期间(可能之前也看过,但是一直不明白什么意思),我一直听到这样一种观点:C语言是面向过程的编程语言,C

PHP面向对象(OOP)编程完全教程

转自:http://blog.snsgou.com/post-41.html 面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持.如何使用OOP的思想来进行PHP的高级编程,对于提高PHP编程能力和规划好Web开发构架都是非常有意义的.下面我们就通过实例来说明使用PHP的OOP进行编程的实际意义和应用方法. 我们通常在做一个有数据库后台的网站的时候,都会考虑到程序需要适用于不同的应用环境.和其他编程语言有所不同的是,在PHP中,操作数据库的是一系列的具体功能函数(如