javascript实现OOP编程
1.首先通过一个函数来实现JS的单继承。使用原型方式来实现继承
(function () {
$.extend({
oop: {
extend: function (child, father) {
if (father == null) {
var father = function () { };
console.log(this);
father.prototype = this
}
child.prototype = new father();
child.base = father;
child.prototype.base = child.prototype;
}
}
});
window.oop = $.opp;
})();
该方法向子类追加base实例属性及静态实例属性,以便找到父类。
2.创建一个基类。
(function () {
oop.ui = function () {
/**
*渲染之前
*基类不开启渲染。
*/
this.renderBefor = function (self) {
return false;
}
/*
* 渲染函数
*/
this.render = function () {
if (this.renderBefor()==false) return;
if (this.element) {
this.element.wrap("<span class='oop_ui'></span>");
}
this.redered();
}
this.redered = function (self) {
}
}
oop.extend(oop.ui);
})();
3.创建一个子类。
(function () {
oop.ui.select = function ($input) {
this.element = $input
this.renderBefor = function () {
return true;
}
this.render = function () {
/**
*通过apply方法来调用基类的render方法。
*/
this.base.render.apply(this,arguments);
this.element.parent().addClass("oop-ui-select");
}
};
oop.extend(oop.ui.select, oop.ui);
})();
子类oop.ui.select的render 方法中。
调用基类的方法是this.base.render.apply(this,arguments);
apply是将base.render()方法中的this覆盖为当前子类的this(也就是指向oop.ui.select)。
javascript实现OOP编程的更多相关文章
- JavaScript的OOP编程1
首先要说的是,javascript其实是可以进行OOP编程的,其次javascript的OOP编程实现方式有多种,我写的这一种只是我测试过,可行的一种 version1 // 父类 function ...
- JavaScript的OOP编程2
我做了一个observer的设计模式实现 version1 // -------------------------------------------------- function Subject ...
- JavaScript之使用JavaScript模仿oop编程
第一, 首先,使用关键字function定义一个类 function Shape1(ax,ay) {//此时将function看成声明类的标志 ; ; var init=function () {// ...
- JavaScript的面向对象编程(OOP)(一)——类
在学习JavaScript面向对象的编程之前,需要知道,并了解面向对象的一些基本的常识.初学者中大多数都以为面向对象中,面向对象的编程是很重要和占据很大一部分精力.笔者在之前也是认为OOP是面向对象的 ...
- JavaScript寻踪OOP之路
上一集中,重点介绍了谁动了你的代码.这里先总结一下:咱们的代码从敲下来到运行出结果,经历了两个阶段:分析期与运行期.在分析期,JavaScript分析器悄悄动了我们的代码:在运行期,JavaScrip ...
- js原生设计模式——4安全的工厂方法模式之oop编程增强版
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- PHP面向对象(OOP)编程入门教程
面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持.如何使用OOP的思想来进行PHP的高级编程,对于提高 PHP编程能力和规划好Web开发构架都是非常有意义的.下面我们就 ...
- 【PHP面向对象(OOP)编程入门教程】1.什么是面向对象?
面向对象编程(Object Oriented Programming, OOP, 面向对象程序设计)是一种计算机编程架构,OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成 ...
- php面向对象(OOP)编程完全教程
摘自:http://www.php-note.com/article/detail/41 面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持.如何使用OOP的思想来进行P ...
随机推荐
- jvm 基础
1. JDK 包含 java 程序设计语言,JVM, Java API类库. java 开发最小环境 2. JRE : Java API类库中java se API 子集和java 虚拟机(HotSp ...
- 修改电脑自动休眠时间win10
https://jingyan.baidu.com/article/adc81513a481cdf723bf73e6.html
- Java学习笔记:23种设计模式
设计模式(Design pattern)的定义: In software engineering, a software design pattern is a general, reusable s ...
- jQuery 2
<head > <style type="text/css"> /*table中偶数行*/ .tabEven { bac ...
- (转贴)fusionCharts属性参考API
一.FusionCharts的分类 关于FusionCharts的基本介绍我就不在这里浪费篇幅了,想了解的朋友自己去www.baigoogedu.com里面找吧.我就说说FusionCharts的官方 ...
- 2016-2017-2 20155312 实验三敏捷开发与XP实践实验报告
1.研究code菜单 Move Line/statement Down/Up:将某行.表达式向下.向上移动一行 suround with:用 try-catch,for,if等包裹语句 comment ...
- php代码中pre的作用??
- android bug笔记
昨天集成一个第三方的联盟sdk,然后执行它的代码,程序就会crash,这个第三方的sdk报错日志后面,紧跟着一个友盟分享的报错,我现在也不明白这里是为何把友盟给扯进来了,因为我这步骤操作上并没有调用任 ...
- WebVTT 及 HTML5 <track> 元素简介
https://dev.opera.com/articles/zh-cn/an-introduction-to-webvtt-and-track/ 简介 网络视频文本轨道,简称为 WebVTT, 是一 ...
- BZOJ [FJOI2007]轮状病毒 (找规律)
1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 6009 Solved: 3282[Submit][Statu ...