原文出处:http://www.2cto.com/kf/201208/148873.html

//javascript中的继承--第一种继承方式:对象冒充
  function Parent(name)
  {
   this.name = name;
   this.getInfo = function()
   {
    document.write("父亲的名字是:"+ name +"<br/>");
   }
  }
  function Child(name, age)
  {
   //这是继承父类的最重要的三行代码
   this.mehod = Parent;//这句代码是将Parent这个对象赋给this.method,即继承父类的属性和方法过来了。
   this.mehod(name);//这句代码是初始化父类的一个属性
   delete this.method;//删除,因为menthod已没有作用了
  
   this.age = age;
   this.getChildInfo = function()
   {
    document.write("儿子的名字是:"+this.name +" , 年龄是:"+this.age);
   }
  }
 
  var parent = new Parent("爸爸");
  //parent.getInfo();
  var child = new Child("儿子",24);
  //child.getInfo();
  //child.getChildInfo();

//call方法是属于每一个Function的一个方法,因此我们定义的每一个函数都有此方法,call方法的第一个参数是要传递给this的,后面的参数一次传递给函数中的参数
  function Test(name, age)
  {
   this.name = name;
   this.age = age;
  
   this.getInfo = function()
   {
    document.write("name:"+this.name+" , age:"+this.age);
   }
  }
  var obj1 = new Object();
  obj1.sex = "男";
  obj1.get = function()
  {
   document.write("name:"+this.name+" age:"+this.age+" sex"+this.sex);
  }
  //text.call的调用相当于test的调用
  //注意:相当于obj1继承了test函数,继承了它的属性和方法。
  Test.call(obj1,"曹欢",21);
  alert(obj1.name);
  obj1.getInfo();
  obj1.get();

//call方法实现继承
  /*function Parent(name)
  {
   this.name = name;
   this.getParentInfo = function()
   {
    document.write("name:"+this.name+"<br/>");
   }
  }
 
  function Child(password)
  {
   Parent.call(this,"曹欢");
   this.password = password;
   this.getChildInfo = function()
   {
    document.write("name:"+this.name+",password:"+this.password+"<br/>");
   }
  }
 
  var p = new Parent("a");
  //p.getParentInfo();
  var c = new Child("123456");
  //c.getParentInfo();
  //c.getChildInfo();

//对象继承的第三种方法apply与call用法基本一致
  function Parent(name)
  {
   this.name = name;
   this.getInfo = function()
   {
    document.write("name:"+this.name,"<br/>");
   }
  }
 
  function Child(password)
  {
   Parent.apply(this,["曹欢"]);//与call的区别,就是从第二个参数开始传递的是一个数组,而call传递的是一个个的参数
   this.password = password;
   this.getChildInfo = function()
   {
    document.write("name:"+this.name+" , password:"+this.password,"<br/>");
   }
  }
 
  var p = new Parent("a");
  //p.getInfo();
  var c = new Child("密码");
  //c.getInfo();
  //c.getChildInfo();

//原型链的方式实现继承,缺陷是无法给构造函数传递参数。
  function ParentPrototype(){}
  ParentPrototype.prototype.name = "张三";
  ParentPrototype.prototype.getInfo = function()
  {
   document.write("name:"+this.name+"<br/>");
  }
  function ChildPrototype(){};
  //集成的关键就是这句代码
  ChildPrototype.prototype = new ParentPrototype();
  ChildPrototype.prototype.password = "密码";
  ChildPrototype.prototype.getAllInfo = function()
  {
  alert("asd");
   document.write("name:"+this.name+", password:"+this.password);
  }
 
  var child = new ChildPrototype();*/
  //child.getInfo();
  //child.getAllInfo();
  //可以传递参数的原型链继承方法(复合):推荐使用该方法
 
  function ParentFh(name)
  {
   this.name = name;
  }
  ParentFh.prototype.getInfo = function()
  {
   document.write("name:"+this.name,"<br/>");
  }
 
  function ChildFh(name, password)
  {
   this.password = password;
   ParentFh.call(this,name);
  }
  ChildFh.prototype = new ParentFh();
  ChildFh.prototype.getAllInfo = function()
  {
   document.write("name:"+this.name+" , password:"+this.password);
  }
  var parentFh = new ParentFh("曹欢");
  parentFh.getInfo();
  var childFh = new ChildFh("曹娟","密码");
  childFh.getAllInfo();

js的对象继承的讲解相关推荐

  1. JS 中对象的简单创建和继承

    对象的简单创建 1.通过对象直接量创建 比如 var obj = {}; 2.通过new 创建 比如 var obj = new Object(); // 相当于var obj = {}; var a ...

  2. JS中对象的四种继承方式:class继承、原型链继承、构造函数继承、组合继承(构造函数和原型链继承的结合)

    前言 才发现之前没有对JavaScript中的继承做过总结,不过看得到是不少,接下来就对这几种继承方式做一下总结. class继承 class继承是ES6引入的标准的继承方式. ES6引入了class ...

  3. 详解js中的继承(一)

    详解js中的继承(一) 前言 准备知识 1.构造函数,实例 2.原型对象 3.构造函数,原型对象和实例的关系 继承 原型链 小结 前言 通过[某种方式]让一个对象可以访问到另一个对象中的属性和方法,我 ...

  4. html制作统计期末成绩,JS-结合html综合练习js的对象——班级成绩表制作

    对象综合练习 body { font: 14px "微软雅黑"; } span { padding: 5px; } table { margin: 0 auto; border: ...

  5. js map对象遍历_何时使用 Map 来代替变通的 JS 对象

    JS 普通对象 {key: 'value'} 用于存放结构化数据.但有一件事我觉得很烦:对象键必须是字符串(或很少使用的 symbol). 如果将数字用作键会怎样?在这种情况下不会有错误: const ...

  6. Node.js自定义对象事件监听与发射

    一.Node.js是以事件驱动的,那我们自定义的一些js对象就需要能监听事件以及发射事件.在Node.js中事件使用一个EventEmitter对象发出,该对象在events模块中.它应该是使用观察者 ...

  7. 7、JS面向对象编程之继承

    Javascript本身是从Perl语言的语法演变而来的,本质上是脚本语言,随着版本的更新逐渐加入的对面向对象的模拟.我认为Js的面向对象模拟总体上做得还是不错的,因为我们不能盲从任何一种理念,不能纯 ...

  8. js自定义对象 (转)

    原文地址:https://sjolzy.cn/js-custom-object.html 29 March 2010 9:53 Monday by 小屋 javascript进阶之对象篇 一,概述 在 ...

  9. js 数组对象的操作方法

    js 数组对象的操作方法 在jquery中处理JSON数组的情况中遍历用到的比较多,但是用添加移除这些好像不是太多. 今天试过json[i].remove(),json.remove(i)之后都不行, ...

最新文章

  1. 【学习笔记】吴恩达机器学习 WEEK 0
  2. RabbitMQ(六):回调队列callback queue、关联标识correlation id、实现简单的RPC系统
  3. 记录下Linux难记实用的命令
  4. 【计算机网络复习 数据链路层】3.5.3 CSMA协议
  5. SQL Server 2005 高级程序设计 学习笔记(2)
  6. ssm访问不到html_IDEA解决SSM项目的静态资源路径问题:HTML,CSS,JS--详解
  7. system函数阻塞_简单的Java阻塞队列
  8. java 实现协方差_无监督数据降维技术-主成分分析(PCA)的Python实现
  9. android 发布版本证书,Android Studio 获取发布版和测试版证书SHA1的两种方式
  10. 微信 JSAPI 支付流程
  11. ParaView的简单用法
  12. android画布橡皮,Android 橡皮擦功能的实现
  13. Package cmake is not available, but is referred to by another package.
  14. 企业微信付款到零钱,全代码讲解,包含怎么加入商户证书
  15. Android崩溃治理
  16. 随时随地可轻松赚钱的APP-自动赚钱宝
  17. 酒仙网都准备IPO啦,郝鸿峰开始发飙颠覆啦哈
  18. node.js邮箱验证码
  19. ipv4与ipv6的联系与区别
  20. 模拟招聘大赛题目关于计算机,模拟招聘大赛活动策划书范文

热门文章

  1. JAVA 实现《五子棋》游戏|CSDN创作打卡
  2. 面试被骗 :当了一小时讲师,最后反倒说我不合格
  3. 关于mysql中无法显示中文的完美解决方案
  4. 昂达v80 plus linux,昂达(ONDA)V80 Plus平板电脑整体性能评测-ZOL中关村在线
  5. 2022-2028全球视频监控软件行业调研及趋势分析报告
  6. 关于 ChatGPT 必看的 10 篇论文
  7. 用Java实现简易计算器
  8. 数据结构之稀疏数组队列
  9. 转自栖息谷论坛-30岁之前成功12条黄金法则
  10. 破解手机辐射危害健康的流言