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的出现已经将近20多年了,但是对这个预言的褒贬还是众说纷纭.很多人都说JavaScript不能算是面向对象的变成语言.但是JavaScript的类型非常松散,也没有编译器.这样一来给了程序员很大的自由,也带来了一些缺陷. 虽然JavaScript不算是一门面向对象的语言.但是我们可以模仿着其他语言实现面向对象的方式来实现JavaScript的面向编程. 下面是JavaScript教程中非常经典的继承方法. 复制代码 代码如下: //定义一个Pet对象.通过这一个名称和数量的腿
-
详解JavaScript基于面向对象之继承
一.面相对象继承机制 这个实例使用UML很好的解释了继承机制. 说明继承机制最简单的方式是,利用一个经典的例子就是几何形状.实际上,几何形状只有两种,即椭圆形(是圆形的)和多边形(具有一定数量的边).圆是椭圆的一种,它只有一个焦点.三角形.矩形和五边形都是多边形的一种,具有不同数量的边.正方形是矩形的一种,所有的边等长.这就构成了一种完美的继承关系,很好的解释了面向对象的继承机制. 在这个例子中,形状是椭圆形和多边形的基类(通常我们也可以叫它父类,所有类都由
-
详解JavaScript基于面向对象之继承实例
javascript面向对象继承的简单实例: 作为一门面向对象的语言,继承自然是它的一大特性,尽管javascript的面向对象的实现机制和和c#和java这样典型的面向对象不同,但是继承的基本特点还是具有的,简单的说就是获得父级的方法和属性,下面是一段简单的实例,大家有兴趣可以分析一下: window.onload = function(){ function parent(age,name){ this.age = age; this.name = name; } parent.protot
-
Javascript简单实现面向对象编程继承实例代码
本文讲述了Javascript简单实现面向对象编程继承实例代码.分享给大家供大家参考,具体如下: 面向对象的语言必须具备四个基本特征: 1.封装能力(即允许将基本数据类型的变量或函数放到一个类里,形成类的成员或方法) 2.聚合能力(即允许类里面再包含类,这样可以应付足够复杂的设计) 3.支持继承(父类可以派生出子类,子类拥有父母的属性或方法) 4.支持多态(允许同样的方法名,根据方法签名[即函数的参数]不同,有各自独立的处理方法) 这四个基本属性,javascript都可以支持,所以javasc
-
javascript 面向对象封装与继承
整理一下js面向对象中的封装和继承. 1.封装 js中封装有很多种实现方式,这里列出常用的几种. 1.1 原始模式生成对象 直接将我们的成员写入对象中,用函数返回. 缺点:很难看出是一个模式出来的实例. 代码: 复制代码 代码如下: function Stu(name, score) { return { name: name, score: score } }
-
JS 面向对象之继承---多种组合继承详解
这一次要讲 组合.原型式.寄生式.寄生组合式继承方式. 1. 组合继承:又叫伪经典继承,是指将原型链和借用构造函数技术组合在一块的一种继承方式. 下面来看一个例子: function SuperType(name) { this.name = name; this.colors = ["red", "blue", "green"]; } SuperType.prototype.sayName = function() { alert(this.n
-
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="草泥马";
随机推荐
- 一个典型的PHP分页实例代码分享
- jsp+ajax实现无刷新上传文件的方法
- jQuery选择器源码解读(三):tokenize方法
- ntiIframe.vbs用于批量清除被添加到文件中的恶意代码
- java web过滤器处理乱码
- Java基础教程之组合(composition)
- Oracle如何直接运行OS命令(上)第1/2页
- 不使用jquery实现js打字效果示例分享
- JavaScript实现iframe自动高度调整和不同主域名跨域
- js cookie实现记住密码功能
- 简单学习Python time模块
- JSP数据分页导出下载显示进度条样式
- jQuery控制TR显示隐藏的几种方法
- Android提高之SQLite分页读取实现方法
- Java中继承、多态、重载和重写介绍
- java实现创建缩略图、伸缩图片比例生成的方法
- 实例讲解在C++的函数中变量参数及默认参数的使用
- Android中自定义一个View的方法详解
- Android实践之带加载效果的下拉刷新上拉加载更多
- mysql 8.0.14 安装配置方法图文教程(通用)