Javascript面向对象之四 继承
var JsObject = {} || new Object();
JsObject.extend = function(subClass, superClass){
//先判断子类subClass是否已经定义,如果未定义,则重新定义类。
if(typeof subClass == "undefined")subClass = function(){};
//如果父类superClass是类,则转化成对象
if(typeof superClass == "function")superClass = new superClass();
//遍历父类superClass对象中的属性和方法
for(var p in superClass)
{
/*将父类superClass对象中的属性和方法复制到子类prototype对象中,
因此子类拥有父类的所有特性,即为继承 */
subClass.prototype[p] = superClass[p];
}
return subClass;
};
function Student()
{
this.name = "张三";
this.updateName = function(name){
this.name = name;
}
}
function Class1()
{
this.sex = "男";
this.updateSex = function(sex){
this.sex = sex;
}
}
//定义类Class1继承Student类
Class1 = JsObject.extend(Class1, Student);
var obj = new Class1();
alert(obj.sex);
alert(obj.name);
obj.updateSex("女");
obj.updateName("玛丽");
alert(obj.sex);
alert(obj.name);
结果显示:男,张三,女,玛丽
相关推荐
-
详解JavaScript基于面向对象之继承实例
javascript面向对象继承的简单实例: 作为一门面向对象的语言,继承自然是它的一大特性,尽管javascript的面向对象的实现机制和和c#和java这样典型的面向对象不同,但是继承的基本特点还是具有的,简单的说就是获得父级的方法和属性,下面是一段简单的实例,大家有兴趣可以分析一下: window.onload = function(){ function parent(age,name){ this.age = age; this.name = name; } parent.protot
-
javascript 面向对象封装与继承
整理一下js面向对象中的封装和继承. 1.封装 js中封装有很多种实现方式,这里列出常用的几种. 1.1 原始模式生成对象 直接将我们的成员写入对象中,用函数返回. 缺点:很难看出是一个模式出来的实例. 代码: 复制代码 代码如下: function Stu(name, score) { return { name: name, score: score } }
-
javaScript面向对象继承方法经典实现
JavaScript的出现已经将近20多年了,但是对这个预言的褒贬还是众说纷纭.很多人都说JavaScript不能算是面向对象的变成语言.但是JavaScript的类型非常松散,也没有编译器.这样一来给了程序员很大的自由,也带来了一些缺陷. 虽然JavaScript不算是一门面向对象的语言.但是我们可以模仿着其他语言实现面向对象的方式来实现JavaScript的面向编程. 下面是JavaScript教程中非常经典的继承方法. 复制代码 代码如下: //定义一个Pet对象.通过这一个名称和数量的腿
-
Javascript简单实现面向对象编程继承实例代码
本文讲述了Javascript简单实现面向对象编程继承实例代码.分享给大家供大家参考,具体如下: 面向对象的语言必须具备四个基本特征: 1.封装能力(即允许将基本数据类型的变量或函数放到一个类里,形成类的成员或方法) 2.聚合能力(即允许类里面再包含类,这样可以应付足够复杂的设计) 3.支持继承(父类可以派生出子类,子类拥有父母的属性或方法) 4.支持多态(允许同样的方法名,根据方法签名[即函数的参数]不同,有各自独立的处理方法) 这四个基本属性,javascript都可以支持,所以javasc
-
JS 面向对象之继承---多种组合继承详解
这一次要讲 组合.原型式.寄生式.寄生组合式继承方式. 1. 组合继承:又叫伪经典继承,是指将原型链和借用构造函数技术组合在一块的一种继承方式. 下面来看一个例子: function SuperType(name) { this.name = name; this.colors = ["red", "blue", "green"]; } SuperType.prototype.sayName = function() { alert(this.n
-
详解JavaScript基于面向对象之继承
一.面相对象继承机制 这个实例使用UML很好的解释了继承机制. 说明继承机制最简单的方式是,利用一个经典的例子就是几何形状.实际上,几何形状只有两种,即椭圆形(是圆形的)和多边形(具有一定数量的边).圆是椭圆的一种,它只有一个焦点.三角形.矩形和五边形都是多边形的一种,具有不同数量的边.正方形是矩形的一种,所有的边等长.这就构成了一种完美的继承关系,很好的解释了面向对象的继承机制. 在这个例子中,形状是椭圆形和多边形的基类(通常我们也可以叫它父类,所有类都由
-
Javascript面向对象之四 继承
复制代码 代码如下: var JsObject = {} || new Object(); JsObject.extend = function(subClass, superClass){ //先判断子类subClass是否已经定义,如果未定义,则重新定义类. if(typeof subClass == "undefined")subClass = function(){}; //如果父类superClass是类,则转化成对象 if(typeof superClass == &quo
-
《javascript设计模式》学习笔记二:Javascript面向对象程序设计继承用法分析
本文实例讲述了Javascript面向对象程序设计继承用法.分享给大家供大家参考,具体如下: 1.关于继承: 百度百科对继承的解释是:继承是指一个对象直接使用另一对象的属性和方法. (话说百科对于计算机概念的继承的解释也太简略了) 继承的好处,优点学过面向对象的同学都知道,就不赘述了. javascript中的继承有三种(不同的书上对这三中的名称翻译都不一样,我按照我的理解来命名吧): a.构造函数继承(类式继承,组合继承,伪经典继承) b.原型继承 c.原型赋值(遍历)继承(寄生式继承) 2.
-
javascript 面向对象,实现namespace,class,继承,重载
由于组里项目大多的javascript,css等客户端工作是另一同事在负责,该同事又特忙无法重构,老大也就只是提建议并未立即实施重构.但是我前些日子也改过些许客户端的小bug,确实那代码看得让人有些云里雾里,不知身在哪山,轻易不敢动代码,于是就自己动手鼓捣起我曾又爱又恨的javascript来,自己写一个简单的js实现namespace,继承,重载等面向对象的特性.欢迎拍砖灌水 .定义namespace Namesapce.js 复制代码 代码如下: Namespace = new Object
-
javascript 面向对象全新理练之继承与多态
1 又是几个基本概念 为什么要说又呢? 在讨论继承时,我们已经列出了一些基本概念了,那些概念是跟封装密切相关的概念,今天我们要讨论的基本概念,主要是跟继承与多态相关的,但是它们跟封装也有一些联系. 1.1 定义和赋值 变量定义是指用 var a; 这种形式来声明变量. 函数定义是指用 function a(...) {...} 这种形式来声明函数. var a = 1; 是两个过程.第一个过程是定义变量 a,第二个过程是给变量 a 赋值. 同样 var a = function(...) {};
-
javascript面向对象之Javascript 继承
上几节讲了 JavaScript 面向对象之命名空间 . javascript 面向对象的JavaScript类 . JavaScript 面向对象的之私有成员和公开成员 与 Javascript 面向对象之重载,大家可以先看上面的再继续往下看. 在JavaScript中实现继承可以有多种方法,下面说两种常见的. 一,call 继承,先看代码: 先定义一个"人"类 复制代码 代码如下: //人类 Person=function(){ this.name="草泥马";
随机推荐
- asp.net 生成缩略图代码
- Laravel学习教程之model validation的使用示例
- Javascript 闭包详解及实例代码
- Oracle常用命令大全集
- php对关联数组循环遍历的实现方法
- php根据日期或时间戳获取星座信息和生肖等信息
- 安装配置php-fpm来搭建Nginx+PHP的生产环境
- JS批量操作CSS属性详细解析
- 3分钟写出来的Jquery版checkbox全选反选功能
- 浅谈原生JS中的延迟脚本和异步脚本
- 浅析C\C++和Lua的通信方式
- 微信小程序 解决请求服务器手机预览请求不到数据的方法
- CSS 网页顶部固定工具栏拖动无闪烁实现代码
- IIS URL Rewrite Module防盗链规则配置方法
- android生命周期深入分析(一)
- Java实现从字符串中找出数字字符串的方法小结
- vue.js的computed,filter,get,set的用法及区别详解
- Vue CL3 配置路径别名详解
- JS实现的碰撞检测与周期移动完整示例
- Python 使用PIL中的resize进行缩放的实例讲解