//call()
//调用一个对象的一个方法,以另一个对象替换当前对象。
//call([thisObj[,arg1[, arg2[,   [,.argN]]]]])
//参数
//thisObj
//可选项。将被用作当前对象的对象。
//arg1, arg2, , argN
//可选项。将被传递方法参数序列。
//说明
//call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
//如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
function Person(name){    //父类
    this.name=name;
    this.SayHello=function(){alert("Hello, I'm "+this.name);};
}
function Employee(name,salary){   //子类
    Person.call(this,name);       //将this传给父构造函数
    this.salary=salary;
    this.ShowMeTheMoney=function(){alert(this.name+" $"+this.salary);};
}
var BillGates=new Person("Bill Gates");
var SteveJobs=new Employee("Steve Jobs",1234);
BillGates.SayHello();  //显示:I'm Bill Gates
SteveJobs.SayHello();  //显示:I'm Steve Jobs
SteveJobs.ShowMeTheMoney();  //显示:Steve Jobs $1234
alert(BillGates.constructor == Person);   //true
alert(SteveJobs.constructor == Employee); //true

直接定义prototype似乎更有extends 的意韵

function Person(name){    //父类
    this.name=name;
    this.SayHello=function(){alert("Hello, I'm "+this.name);};
}
function Employee(salary){   //子类
    this.salary=salary;
    this.ShowMeTheMoney=function(){alert(this.name+" $"+this.salary);};
}
Employee.prototype=new Person("Steve Jobs");
var SteveJobs=new Employee(1234);
SteveJobs.SayHello();  //显示:I'm Steve Jobs
SteveJobs.ShowMeTheMoney();  //显示:Steve Jobs $1234

文章出自:http://www.cnblogs.com/frostbelt/archive/2012/04/01/2428014.html

转载于:https://www.cnblogs.com/yichengbo/p/3719164.html

js类(继承)(一)相关推荐

  1. JS原型继承和类式继承

    类式继承(构造函数) JS中其实是没有类的概念的,所谓的类也是模拟出来的.特别是当我们是用new 关键字的时候,就使得"类"的概念就越像其他语言中的类了.类式继承是在函数对象内调用 ...

  2. js继承实现 狗类继承动物类

    > 需求说明 根据类图使用js实现继承的效果 #mermaid-svg-spN1nCOPNErXb3f4 .label{font-family:'trebuchet ms', verdana, ...

  3. js中关于类及类继承

    在面向对象的程序设计语言中,类和类之间有显式的继承关系,一个类可以显式的指定继承了哪个类,子类将具有父类的所有属性和方法.js虽然也支持类.对象的概念,但没有继承的概念,只能通过特殊的手段来扩展原有的 ...

  4. 几种常用的JS类定义方法

    几种常用的JS类定义方法 // 方法1 对象直接量 var obj1 = {     v1 : "",     get_v1 : function() {         retu ...

  5. JS类的封装及实现代码

    js并不是一种面向对向的语言, 没有提供对类的支持, 因此我们不能像在传统的语言里那样 用class来定义类, 但我们可以利用js的闭包封装机制来实现js类, 我们来封装一个简的Shape类. 1. ...

  6. js中继承的几种用法总结(apply,call,prototype)

    本篇文章主要介绍了js中继承的几种用法总结(apply,call,prototype) 需要的朋友可以过来参考下,希望对大家有所帮助 一,js中对象继承 js中有三种继承方式 1.js原型(proto ...

  7. 你真的理解JS的继承了吗?

    噫吁嚱,js之难,难于上青天 学习js的这几年,在原型链和继承上花了不知道多少时间,每当自以为已经吃透它的时候,总是不经意的会出现各种难以理解的幺蛾子.也许就像kyle大佬说的那样,js的继承真的是' ...

  8. (转)js实现继承的5种方式

    js是门灵活的语言,实现一种功能往往有多种做法,ECMAScript没有明确的继承机制,而是通过模仿实现的,根据js语言的本身的特性,js实现继承有以下通用的几种方式 1.使用对象冒充实现继承(该种实 ...

  9. Java中字符串工具类继承org.apache.commons.lang3.StringUtils类代码

    场景 转换为字节数组:是否包含字符串:替换掉HTML标签方法:替换为手机识别的HTML,去掉样式及属性,保留回车: 缩略字符串(不区分中英文字符):转换为Double类型:转换为Float类型:转换为 ...

  10. 面试官问:JS的继承

    原文作者若川,掘金链接:https://juejin.im/post/5c433e216fb9a049c15f841b 写于2019年2月20日,现在发到公众号声明原创,之前被<前端大全> ...

最新文章

  1. navicat for mysql 显示中文乱码解决办法
  2. 【plt显示Tensor转出来的array时的报错】TypeError: Invalid dimensions for image data
  3. PHP代码为什么不能直接保存HTML文件——PHP生成静态页面教程
  4. Maven-Maven中添加Oracle驱动包到本地仓库
  5. 成功解决.ReadTimeoutError: HTTPSConnectionPool(host=‘pypi.tuna.tsinghua.edu.cn‘, port=443): Read timed o
  6. 13-jdbc分页+事务
  7. 牛客 216 C 小K的疑惑
  8. 怎么查看linux文件夹下有多少个文件
  9. vs 中使用32 位mysql_vs2010连接mysql数据库(含win32和x64两种平台)
  10. Win7,Win8下多实例运行Excel2010
  11. C#的Timer解析
  12. Android 应用开发(17)---应用权限
  13. pytorch LSTM_regression
  14. 20个技巧让你玩转Windows 7
  15. 3.Linux 高性能服务器编程 --- TCP 协议详解
  16. 项目发布到Tomcat后,网页图片不显示
  17. thinkpad x1e 隐士进入bios
  18. 记一次云主机如何挂载对象存储
  19. 万维钢:怎样做读书笔记
  20. 从年轻大学教师待遇说到大学教学质量

热门文章

  1. 在线JSON转CSV格式文件工具
  2. editor.md实现拖拽剪切复制粘贴上传图片,文件插件
  3. JavaScript 代码简洁之道
  4. 验证二叉搜索树的golang实现
  5. Windows Communication Foundation_1 overview
  6. 2008R2更新链接服务器(SQL2000)慢的问题
  7. Joomla源代码解析(十九) JController
  8. 追佛信道不如追求真理。。
  9. 【论文写作】JSP在线考试系统如何写功能描述
  10. java 程序硬盘,用Java得到硬盘空间