<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>05-继承的概念</title>
<script>
/*
function Dog (color,name){
this.skinColor = color;
this.name = name;
this.act = function (){
console.log(this.name + '汪汪汪');
}
}

function Person (color,name){
this.skinColor = color;
this.name = name;
this.act = function(){
console.log(this.name + '去遛狗');
}
}

var erha = new Dog('白色','二哈');
var xiaopao = new Person('黄色','小炮');
*/
// 重构上面的构造函数
// 定义一个父级构造函数
function Biology(color,name,fun){
this.skinColor = color;
this.name = name;
this.act = fun;
}

// 下面两个构造函数通过apply和call方法来继承上面构造函数Biology的属性
function Dog(){
// 使用apply或者call方法调用Biology函数
Biology.apply(this,arguments);
}
var erha = new Dog('白色','二哈',function(){console.log(this.name + '汪汪汪');});

function Person(){
// 使用apply或者call方法调用Biology函数
Biology.call(this,arguments[0],arguments[1],arguments[2]);
this.job = arguments[3];
}
var xiaopao = new Person('黄色','小炮',function(){console.log(this.name + '散步');},'coder');

xiaopao.act();

// 对象的嵌套
xiaopao.pet = erha;
// 覆盖act属性
xiaopao.act = function(){
console.log(this.name + '和他的宠物' + this.pet.name + '一起去散步');
};
xiaopao.act();

// 对象嵌套,字面量
var erha2 = {
name:'二哈',
act:function(){
console.log(this.name + '汪汪汪');
}
}

var xiaohua = {
name:'小花',
pet:erha2,
act:function(){
console.log(this.name + '和他的宠物' + this.pet.name + '一起去散步');
}
}
xiaohua.act();

</script>
</head>
<body>

</body>
</html>

【JavaScript 6连载】五、继承的概念的更多相关文章

  1. javascript中对象函数继承的概念

    什么是函数对象?这个对象既是通常意义上的对象,又可以加上括号直接执行的函数. 产生函数对象的方式有两种:1.通过function关键字产生:var fn = function(){};2.实例化Fun ...

  2. Javascript本质第一篇:核心概念

    很多人在使用Javascript之前都至少使用过C++.C#或Java,面向对象的编程思想已经根深蒂固,恰好Javascript在语法上借鉴了Java,虽然方便了Javascript的入门,但要深入理 ...

  3. 玩转JavaScript OOP[4]——实现继承的12种套路

    概述 在之前的文章中,我们借助构造函数实现了"类",然后结合原型对象实现了"继承",并了解了JavaScript中原型链的概念. 理解这些内容,有助于我们更深入 ...

  4. Javascript的实例化与继承:请停止使用new关键字

    本文同时也发表在我另一篇独立博客 <Javascript的实例化与继承:请停止使用new关键字>(管理员请注意!这两个都是我自己的原创博客!不要踢出首页!不是转载!已经误会三次了!) 标题 ...

  5. JavaScript面向对象中的继承

    1.1继承的基本概念 使用一个子类,继承另一个父类,那么子类可以自动拥有父类中的所有属性和方法,这个过程叫做继承. >>>继承的两方,发生在两个类之间. 实现继承的三种方式: 扩展O ...

  6. 老生常谈javascript的5中继承

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. JavaScript 面向对象 原型(prototype) 继承

    1.对象的概念:无需属性的集合,属性可以为数值,对象或函数,ECMAscript中没有类的概念,这点是javascript与其他面向对象(OO)语言不同的地方. //创建一个自定义对象 var per ...

  8. JavaScript 常见的六种继承方式

    JavaScript 常见的六种继承方式 前言 面向对象编程很重要的一个方面,就是对象的继承.A 对象通过继承 B 对象,就能直接拥有 B 对象的所有属性和方法.这对于代码的复用是非常有用的. 大部分 ...

  9. JavaScript的封装和继承

    提到JavaScript"面向对象编程",主要就是封装和继承,这里主要依据阮一峰及其他博客的系列文章做个总结. 继承机制的设计思想 所有实例对象需要共享的属性和方法,都放在这个对象 ...

  10. 带你理解【JavaScript】中的继承机制

    前文 总所周知,继承是所有OO语言中都拥有的一个共性.在JavaScript中,它的继承机制与其他OO语言有着很大的不同,尽管ES6为我们提供了像面向对象继承一样的语法糖,但是其底层依然是构造函数,所 ...

随机推荐

  1. bat删除过期文件(FORFILES)

    关键词:bat删除过期文件,bat,FORFILES 原文:https://blog.csdn.net/sandy9919/article/details/82932460 --最佳实践 :: IIS ...

  2. WEB测试用例设计总结

    1易用性 1.便于使用.理解.并能减少用户发生错误选择的可能性 2.当数据字段过多时,使用便于用户迅速吸取信息的方式表现信息,突出重点信息,标红等方式 3.显示与当前操作相关的信息,给出操作提示. 4 ...

  3. 自定义安装visual studio 2010开发asp.net

    VS2010的安装对于VS的安装大家肯定都熟悉,不过我在很多地方看到的是大家讲VS的全部组件都安装了,不但浪费磁盘空间,还降低了系统性能,除此之外,还有人安装了VS之后不知道顺手把MSDN安装上,害得 ...

  4. python的执行顺序

    为了区分是主动执行(如python test.py)还是被动调用(如import test),python用__name__来进行标识. 当主动执行时,__name__为__main__,当被调用时, ...

  5. 关于运行python脚本产生__pycache__

    是什么? 用python编写好一个工程,在第一次运行后,总会发现工程根目录下生成了一个__pycache__文件夹,里面是和py文件同名的各种 *.pyc 或者 *.pyo 文件. python脚本编 ...

  6. nodejs+websocket聊天工具

    该聊天工具,使用nodejs起服务,websocket前端页面,聊天工具,,可以有任意多的人数参与聊天,里面的用户ID为模拟ID. 先上图 文件夹结构, 1.安装ws模块,npm install ws ...

  7. Java Selenium - 处理页面弹出窗

    1. 得到当前窗口句柄 2. 得到所有窗口句柄 3. 循环找到目标窗口 String currentWindow = driver.getWindowHandle(); Set<String&g ...

  8. numpy中np.c_和np.r_

    np.r_:按列连接两个矩阵,就是把两矩阵上下相加,要求列数相等,类似于pandas中的concat() np.c_:按行连接两个矩阵,就是把两矩阵左右相加,要求行数相等,类似于pandas中的mer ...

  9. 回归评价指标MSE、RMSE、MAE、R-Squared

    分类问题的评价指标是准确率,那么回归算法的评价指标就是MSE,RMSE,MAE.R-Squared. MSE和MAE适用于误差相对明显的时候,大的误差也有比较高的权重,RMSE则是针对误差不是很明显的 ...

  10. android hook native函数

    大概2年前写的代码,今天突然要用到,找了半天,这里记录下 用到的库: https://pan.baidu.com/s/1htuUQX2 #include <jni.h> #include ...