javascrip关于继承的小例子

代码如下:

//继承
function Person(name,sex)
{
   this.name=name;
   this.sex=sex;
}
Person.prototype.sayName=function()
{
   alert(this.name);
}
Person.prototype.saySex=function()
{
   alert(this.sex);
}
function Worker(name,sex,job)
{
    //继承person类
    Person.call(this,name,sex)  //这里的this指的是Worker类的实例,如下面的'W' ,把W传入Person构造函数,这时W伪装成Person构造函数里的this
    this.job=job;
}

//Worker.prototype=Person.prototype;//如果这样负值原型,子类的sayJob方法Person父类也会有sayJob方法,因为是引用传递

//改成如下方式则子类不会影响父类:
for(var i in Person.prototype)
{
    Worker.prototype[i]=Person.prototype[i];
}

Worker.prototype.sayJob=function()
{
   alert(this.job);
}

var p=new Person('lisi','男');
//alert(p.sayJob);

var w=new Worker('zhangsan','男','打酱油的');
w.sayName();
w.saySex();
w.sayJob();

(0)

相关推荐

  • Java基础教程之继承详解

    继承(inheritance)是面向对象的重要概念.继承是除组合(composition)之外,提高代码重复可用性(reusibility)的另一种重要方式.我们在组合(composition)中看到,组合是重复调用对象的功能接口.我们将看到,继承可以重复利用已有的类的定义. 类的继承 我们之前定义类的时候,都是从头开始,详细的定义该类的每一个成员.比如下面的Human类: 复制代码 代码如下: class Human {      /**      * accessor      */    

  • Java封装、继承、多态三大特征的理解

    首先先简单的说一下其3大特性的定义: 封装:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别.将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成"类",其中数据和函数都是类的成员.封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的访问权限来使用类的成员.封装的基本要求是: 把所有的属性私有化,对每个属性提供getter和setter方法,如果有一个带参的

  • 基于java中子类的继承性的应用介绍

    1,继承的定义 子类的成员中有一部分是子类自己申明定义的,另一部分是从他的父类继承的.子类继承父类的成员变量作为自己的一个成员变量,就好像他们是在子类中直接 申明一样,可以被子类中自己的任何实例方法操作.也就是说,一个子类继承的成员应当是这个类的完全意义的成员,如果子类中申明的实例方法不能操作父类 的某个成员变量,该成员变量就没有被子类继承,子类继承父类的方法作为子类中的方法,就像他们是在子类中直接声一样,可以被子类中自己声明的刃虎实例 方法调用. 2.子类父类在一个包中的情况 子类可以继承父类

  • java教程之java继承示例详解

    什么是继承(extends)? 继承是:新定义的类是从已有的类中获取属性和方法的现象. 这个已有的类叫做父类, 从这个父类获取属性和方法的类叫做子类. ExtendsDemo1.java 复制代码 代码如下: /*什么是继承*/public class ExtendsDemo1 {    public static void main(String[] args) {        Truck t = new Truck();        t.size = 100;           //不

  • JAVA中阻止类的继承(官方和非官方)

    官方办法 JAVA语言提供的一个关键字"FINAL"可以用来履行该任务.看看下面的源代码范例: 复制代码 代码如下: //FinalDemo.java public final class FinalDemo { } 下面让我们来制作另一个类,它将会继承上面声明的类.JAVA语言提供的"EXTENDS"关键字将能够使得一个类继承于一个现有的类. 复制代码 代码如下: //FinalDemo2.java public class FinalDemo2 extends

  • 浅谈Java 对于继承的初级理解

    概念:继承,是指一个类的定义可以基于另外一个已存在的类,即子类继承父类,从而实现父类的代码的重用.两个类的关系:父类一般具有各个子类共性的特征,而子类可以增加一些更具个性的方法.类的继承具有传递性,即子类还可以继续派生子类,位于上层的类概念更加抽象,位于下层的类的概念更加具体. 1.定义子类: 语法格式 [修饰符] class 子类名 extends 父类名{ 子类体 } 修饰符:public private protected default 子类体是子类在继承父类的内容基础上添加的新的特有内

  • java中子类继承父类,程序运行顺序的深入分析

    我们经常在项目中使用继承,但是往往不太明白,程序运行的顺序以及原理,尤其是使用上转型对象的时候,以及父类子类中都有static变量和方法时,不知道先运行谁.我也是写了一个例子.总结了一下. 复制代码 代码如下: 父类:public class TestStatic { public static String name="china"; {       System.out.println("========方法体========");    } static{  

  • 解析Java继承中方法的覆盖和重载

    方法的覆盖 在类继承中,子类可以修改从父类继承来的方法,也就是说子类能创建一个与父类方法有不同功能的方法,但具有相同的名称.返回值类型.参数列表. 如果在新类中定义一个方法,其名称.返回值类型和参数列表正好与父类中的相同,那么,新方法被称做覆盖旧方法. 参数列表又叫参数签名,包括参数的类型.参数的个数和参数的顺序,只要有一个不同就叫做参数列表不同. 被覆盖的方法在子类中只能通过super调用. 注意:覆盖不会删除父类中的方法,而是对子类的实例隐藏,暂时不使用. 请看下面的例子: public c

  • javascrip关于继承的小例子

    复制代码 代码如下: //继承function Person(name,sex){   this.name=name;   this.sex=sex;}Person.prototype.sayName=function(){   alert(this.name);}Person.prototype.saySex=function(){   alert(this.sex);}function Worker(name,sex,job){    //继承person类     Person.call(

  • python3学习笔记之多进程分布式小例子

    最近一直跟着廖大在学Python,关于分布式进程的小例子挺有趣的,这里做个记录. 分布式进程 Python的multiprocessing模块不但支持多进程,其中managers子模块还支持把多进程分布到多台机器上.一个服务进程可以作为调度者,将任务分布到其他多个进程中,依靠网络通信.由于managers模块封装很好,不必了解网络通信的细节,就可以很容易地编写分布式多进程程序. master服务端原理:通过managers模块把Queue通过网络暴露出去,其他机器的进程就可以访问Queue了 服

  • 基于Spring MVC 简介及入门小例子(推荐)

    一.什么是 Spring MVC Spring MVC 属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里面,是一个强大灵活的 Web 框架.Spring MVC 提供了一个 DispatcherServlet 作为前端控制器来分配请求.通过策略接口,Spring 框架是高度可配置的.Spring MVC 还包含多种视图技术,如 Java Server Pages(JSP).Velocity.Tiles.iText 和 POI 等.Spring MV

  • 一个小例子解释如何来阻止Jquery事件冒泡

    什么是JS事件冒泡? 在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window). 如何来阻止Jquery事件冒泡? 通过一个小例子来解释 <!DOCTYPE html PUBLIC "-//W3C//D

  • 基于vue-cli、elementUI的Vue超简单入门小例子(推荐)

    这个例子还是比较简单的,独立完成后,能大概知道vue是干嘛的,可以写个todoList的小例子. 开始写例子之前,先对环境的部署做点简单的介绍,其实和Vue官方的差不多. #如若没有安装过vue-cli,先全局安装一下vue-cli $ cnpm i -g vue-cli #到自己喜欢的目录下创建一个基于 webpack 模板的新项目 $ vue init webpack my-project # # #之后会有如下询问 ? Project name (my-project) #回车 ? Pro

  • C#利用PrintDocument定制打印单据的小例子

    前言 本文是利用PrintDocument定制打印单据的小例子,仅供学习分享使用,如果不足之处,还请指正. 涉及知识点: PrintDocument :从 Windows 窗体应用程序打印时,定义一种可重用的可发送到打印机上的对象. PrintPreviewControl :表示 Windows 窗体应用程序打印预览的原始预览部分,没有任何对话框或按钮. Graphics :GDI+绘图对象 PrinterSettings:设置打印机属性,如:设置属性Copies,可以设置打印份数,默认为1,

  • wxPython实现绘图小例子

    本文实例为大家分享了wxPython绘图小例子的具体实现代码,供大家参考,具体内容如下 一个绘图的例子: #!/usr/bin/env python # -*- coding: utf-8 -*- ''' Function:绘图 Input:NONE Output: NONE author: socrates blog:http://www.cnblogs.com/dyx1024/ date:2012-07-11 ''' import wx class PaintWindow(wx.Window

  • Python正则表达式学习小例子

    正则表达式是处理字符串的强大工具.作为一个概念而言,正则表达式对于Python来说并不是独有的.但是,Python中的正则表达式在实际使用过程中还是有一些细小的差别. (1)匹配1-100之间的数 import re s = '100' # 1-100内的任意数字 ret = re.match(r'(100|[1-9]\d{0,1})$',s) print(ret.group()) (100|[1-9]\d{0,1})$ 100可以匹配100 | 或者匹配[1-9]中的一个数,然后后面\d是数字

  • Servlet+JDBC实现登陆功能的小例子(带验证码)

    案例需求:访问带有验证码的登录页面login.jsp用户输入用户名,密码以及验证码.如果用户名和密码输入有误,跳转登录页面,提示:用户名或密码错误如果验证码输入有误,跳转登录页面,提示:验证码错误如果全部输入正确,则跳转到主页success.jsp,显示:用户名,欢迎您分析 步骤 文件树展示 1.配置文件和jar包在上个案例均有配置过,需要改的有:User类新增验证码成员变量,数据库增加了一个验证码字段(无用,只是为了UserDao包把查找到的数据值导入到User类不出错). 2.登陆界面 <%

  • C# 实现FTP客户端的小例子

    本文是利用C# 实现FTP客户端的小例子,主要实现上传,下载,删除等功能,以供学习分享使用. 思路: 通过读取FTP站点的目录信息,列出对应的文件及文件夹. 双击目录,则显示子目录,如果是文件,则点击右键,进行下载和删除操作. 通过读取本地电脑的目录,以树状结构展示,选择本地文件,右键进行上传操作. 涉及知识点: FtpWebRequest[实现文件传输协议 (FTP) 客户端] / FtpWebResponse[封装文件传输协议 (FTP) 服务器对请求的响应]Ftp的操作主要集中在两个类中.

随机推荐