JavaScript继承定义与用法实践分析


Posted in Javascript onMay 28, 2018

本文实例讲述了JavaScript继承定义与用法。分享给大家供大家参考,具体如下:

javascript 继承 , 老生长谈的东西, 大家应该都很熟悉了, 平时工作基本不会直接使用, 这段时间不忙, 所以补习了下相关基础知识 ,自己动手实践, 加深理解:

基类定义如下:

// base class
function Animal(t)
{
   if(typeof t==='string')
    this.type=t;
   else
   {
    if(t)
      this.type=t.toString();
    else
      this.type='Animal'
   }
   this.speak=function(str)
   {
    if(str)
      console.log(this.type+' said '+str);
    else
      throw "please specify what you want to say!";
   }
}

1. 原型继承 (javascript 类库本身基于原型继承)

String, Number , Boolean 这三大原始类型 我们可以很直接的通过prototype 检查到他们继承自Object.

Date, RegExp ,Array 这三应该是间接继承了Object, 他们的prototype属性很特殊 :

Date.prototype =Invalid Date
RegExp.prototype=/(?:)/
Array.prototype=[]

原型继承代码如下: (可以看到Mokey 原型链上的Animal和Object)

// Monkey : Animal 
function Monkey(name,age)
{
   this.name=name;
   this.age=age;
}
Monkey.prototype=new Animal('Monkey');
// Example 01
var m=new Monkey('codeMonkey',10);
    /*
    Monkey:
    age: 10
    name: "codeMonkey"
      __proto__: Animal
      speak: function (str)
      type: "Monkey"
        __proto__: Animal
        constructor: function Animal(t)
          __proto__: Object 
*/
console.log(m.type); // Monkey
console.log(m.name); // codeMonkey
console.log(m.age); // 10
m.speak('hello world') // Monkey said hello world

2. 调用父类构造函数 ( 通过传递子类的this指针 , 将原本是父类的公开成员直接添加到了子类中,从子类原型链中无法看出继承关系)

// Human:Animal 
function Human(id,name)
{
    // call base class's constuctor function
   Animal.call(this,'Human');
   this.id=id;
   this.name=name;
}
var h=new Human(1,'leon');
/*
id: 1
name: "leon"
speak: function (str)
type: "Human"
    __proto__: Human
    constructor: function Human(id,name)
      __proto__: Object
*/
h.speak('hello world'); // Human said hello world 
console.log(h.type); // Human

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
javascript 对象的定义方法
Jan 10 Javascript
filemanage功能中用到的common.js
Apr 08 Javascript
基于Jquery实现表格动态分页实现代码
Jun 21 Javascript
javascript中typeof的使用示例
Dec 19 Javascript
JQuery中serialize() 序列化
Mar 13 Javascript
js实现类似新浪微博首页内容渐显效果的方法
Apr 10 Javascript
jQuery简单实现日历的方法
May 04 Javascript
JS实现本地存储信息的方法(基于localStorage与userData)
Feb 18 Javascript
js实现添加删除表格(两种方法)
Apr 27 Javascript
微信小程序canvas实现刮刮乐效果
Jul 09 Javascript
setTimeout与setInterval的区别浅析
Mar 23 Javascript
Javascript新手入门之字符串拼接与变量的应用
Dec 03 Javascript
关于jquery中attr()和prop()方法的区别
May 28 #jQuery
JS数组去重常用方法实例小结【4种方法】
May 28 #Javascript
jQuery中将json数据显示到页面表格的方法
May 27 #jQuery
javascript少儿编程关于返回值的函数内容
May 27 #Javascript
《javascript少儿编程》location术语总结
May 27 #Javascript
javascript深拷贝、浅拷贝和循环引用深入理解
May 27 #Javascript
JavaScript面向对象的程序设计(犯迷糊的小羊)
May 27 #Javascript
You might like
PHP set_error_handler()函数使用详解(示例)
2013/11/12 PHP
zf框架的registry(注册表)使用示例
2014/03/13 PHP
PHP中的empty、isset、isnull的区别与使用实例
2019/03/22 PHP
Javascript客户端脚本的设计和应用
2006/08/21 Javascript
DHTML 中的绝对定位
2006/11/26 Javascript
JSON.parse 解析字符串出错的解决方法
2010/07/08 Javascript
JavaScript中变量提升 Hoisting
2012/07/03 Javascript
javascript读取xml实现javascript分页
2013/12/13 Javascript
javascript异步处理工作机制详解
2015/04/13 Javascript
Bootstrap作品展示站点实战项目2
2016/10/14 Javascript
VueJS全面解析
2016/11/10 Javascript
bootstrap制作jsp页面(根据值让table显示选中)
2017/01/05 Javascript
Vue2.0父组件与子组件之间的事件发射与接收实例代码
2017/09/19 Javascript
jQuery pager.js 插件动态分页功能实例分析
2019/08/02 jQuery
countup.js实现数字动态叠加效果
2019/10/17 Javascript
解决在Vue中使用axios用form表单出现的问题
2019/10/30 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
解决vue项目获取dom元素宽高总是不准确问题
2020/07/29 Javascript
uniapp实现可滑动选项卡
2020/10/21 Javascript
Python类的多重继承问题深入分析
2014/11/09 Python
Python实现比较两个列表(list)范围
2015/06/12 Python
在Python中定义和使用抽象类的方法
2016/06/30 Python
Django 内置权限扩展案例详解
2019/03/04 Python
Python中字符串与编码示例代码
2019/05/20 Python
python3 批量获取对应端口服务的实例
2019/07/25 Python
使用Puppeteer爬取微信文章的实现
2020/02/11 Python
适合Python初学者的一些编程技巧
2020/02/12 Python
Sneaker Studio波兰:购买运动鞋
2018/04/28 全球购物
编写类String的构造函数、析构函数和赋值函数
2012/05/29 面试题
物流管理应届生求职信
2013/11/07 职场文书
水务局局长岗位职责
2013/11/28 职场文书
初一家长会邀请函
2014/01/31 职场文书
品酒会策划方案
2014/05/26 职场文书
世界卫生日宣传活动总结
2015/02/09 职场文书
五星级酒店前台接待岗位职责
2015/04/02 职场文书
利用Python网络爬虫爬取各大音乐评论的代码
2021/04/13 Python