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();
12
13                 child.base = father;
14                 child.prototype.base = child.prototype;
15             }
16         }
17
18     });
19     window.oop = $.opp;
20 })();

该方法向子类追加base实例属性及静态实例属性,以便找到父类。

2.创建一个基类。

 1 (function () {
 2     oop.ui = function () {
 3         /**
 4         *渲染之前
 5         *基类不开启渲染。
 6         */
 7         this.renderBefor = function (self) {
 8             return false;
 9         }
10         /*
11         * 渲染函数
12         */
13         this.render = function () {
14             if (this.renderBefor()==false) return;
15             if (this.element) {
16                 this.element.wrap("<span class=‘oop_ui‘></span>");
17             }
18             this.redered();
19         }
20         this.redered = function (self) {
21
22         }
23     }
24     oop.extend(oop.ui);
25 })();

3.创建一个子类。

 1 (function () {
 2     oop.ui.select = function ($input) {
 3
 4         this.element = $input
 5
 6         this.renderBefor = function () {
 7             return true;
 8         }
 9         this.render = function () {
10             /**
11             *通过apply方法来调用基类的render方法。
12             */
13             this.base.render.apply(this,arguments);
14             this.element.parent().addClass("oop-ui-select");
15         }
16     };
17     oop.extend(oop.ui.select, oop.ui);
18
19 })();

子类oop.ui.select的render 方法中。

调用基类的方法是this.base.render.apply(this,arguments);

apply是将base.render()方法中的this覆盖为当前子类的this(也就是指向oop.ui.select)。

时间: 2024-11-07 15:15:43

javascript实现OOP编程的相关文章

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编程

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

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; } Subje

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中,操作数据库的是一系列的具体功能函数(如