复制继承:简单理解,就是把父对象上的所有属性复制到自身对象上;

            function Cat(){
this.climb = function(){
alert("我会爬树");
}
} function Dog(){
this.eat = function(){
alert("我会吃");
}
this.extend = function(parent){//extend方法实现了复制
for(var key in parent){
//console.log(key);
this[key] = parent[key];
}
}
}
var dog = new Dog();
console.log(dog);//这里没有climb方法
dog.extend(new Cat());//开始复制
console.log(dog);//这里有了climb方法

这是Google下的结果

aaarticlea/png;base64,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" alt="" />

对于js原型和原型链继承的简单理解(第三种,复制继承)的更多相关文章

  1. 对于js原型和原型链继承的简单理解(第一种,原型链继承)

    原型是js中的难点加重点,也是前端面试官最爱问的问题之一,因为面试官可以通过被面试者对原型的理解.来判断被面试者对js的熟悉程度. 原型的定义 Js所有的函数都有一个prototype属性,这个属性引 ...

  2. 对于js原型和原型链继承的简单理解(第二种,对象冒充)

    关键代码    this.parent = Cat;    this.parent.apply(this); function Cat(){ this.climb = function(){ aler ...

  3. 深入理解OOP(三):多态和继承(动态绑定和运行时多态)

    在前面的文章中,我们介绍了编译期多态.params关键字.实例化.base关键字等.本节我们来关注另外一种多态:运行时多态, 运行时多态也叫迟绑定. 深入理解OOP(一):多态和继承(初期绑定和编译时 ...

  4. js 继承的简单理解

    什么是继承 js中的继承就是获取存在对象已有属性和方法的一种方式. 继承一 属性拷贝 就是将对象的成员复制一份给需要继承的对象. // 创建父对象 var superObj = { name:'liy ...

  5. JS继承(简单理解版)

    童鞋们,我们今天聊聊js的继承,关于继承,平时开发基本用不到,但是面试没有不考的,我就想问,这是人干的事吗? 好吧,迫于社会主义核心价值观,我们今天就来简单说一说js的继承,谁让它是面向对象编程很重要 ...

  6. js架构设计模式——你对MVC、MVP、MVVM 三种组合模式分别有什么样的理解?

    你对MVC.MVP.MVVM 三种组合模式分别有什么样的理解? MVC(Model-View-Controller)MVP(Model-View-Presenter)MVVM(Model-View-V ...

  7. CSS设计指南之CSS三种机制:继承、层叠和特指

    一.继承 CSS中的祖先元素也会向后代传递一样东西:CSS属性的值.body元素是所有元素的祖先,所有标签都是它的后代,比如为body元素设置一种字体,那么文档中的所有元素,无论它在层次结构中多么靠下 ...

  8. JS判断一个数组中是否有重复值的三种方法

    方法一: var s = ary.join(",")+","; for(var i=0;i<ary.length;i++) { if(s.replace( ...

  9. JS 深拷贝和浅拷贝概念,以及实现深拷贝的三种方式

    一.理解堆栈,基本数据类型与引用数据类型 1.堆栈 栈(stack):系统自动分配的内存空间,内存会由系统自动释放,用来存放函数的参数值,局部变量的值等,特点是先进后出. 堆(heap):系统动态分配 ...

随机推荐

  1. .SO 出现 undefined reference

    查看本SO文件依赖哪些其他的SO文件: readelf -d ldd undefined reference 涉及的问题是  主程序及静态库不能定位地址 undefined symbol 说的问题是动 ...

  2. MyBatis错误--Invalid bound statement (not found)

    今天在开发项目的时候使用MyBatis发生错误:Invalid bound statement (not found) 具体错误信息: org.springframework.beans.factor ...

  3. Google Chrome快捷键大全

    信很多朋友在使用过Google Chrome之后,就会不想回到原先使用的浏览器了,尤其是IE.没错Google Chrome的优点很多,已经获得了一大部分网友们的用户,软件志现在也是Firefox+C ...

  4. Currency 货币 filter

    angularjs 其实也有一个currency指令,不过好像只是换符号而已. 这里自己写了一个简单的兑换率filter <div ng-controller="ctrl"& ...

  5. c++(smart pointer)

    (一)首先对智能指针有一些概念性的了解 **********本部分内容摘自开源中国社区http://my.oschina.net/u/158589/blog/28994******** 1.什么是智能 ...

  6. Linux下快速静态编译Qt以及Qt动态/静态版本共存

    Qt下静态编译Qt,根据我的经验,如果按照Windows下那种直接拿官方sdk安装之后的文件来编译是行不通的,需要直接下载Qt的source包,目前诺基亚的源码叫做qt-everywhere-open ...

  7. 8.2.1.2 How MySQL Optimizes WHERE Clauses MySQL 优化WHERE 子句

    8.2.1.2 How MySQL Optimizes WHERE Clauses MySQL 优化WHERE 子句 本节讨论优化用于处理WHERE子句, 例子是使用SELECT 语句,但是相同的优化 ...

  8. 通过并行 提高批量审核PDF性能

    上一篇文章提到了 通过 iTextSharp 实现PDF 审核盖章 ,如果当需要一次审核大批量的PDF我们如何来提高程序的性能呢? 下面我们通过并行计算来提升性能. 首先是一个审核PDF的方法 pub ...

  9. linux中断处理程序

    Linux进行中断处理的4个步骤: 1.当中断产生,跳到统一入口IRQ_SVC 2.获取中断号 3.根据中断号找到irq_desc结构 4.从irq_desc结构中取出事先注册好的中断处理函数 Lin ...

  10. uva 10714 Ants(贪心)

    题目连接:10714 - Ants 题目大意:一根棍子上有n只蚂蚁, 这些蚂蚁开始可以任意朝着一个方向移动一直走,向左或是向右,并且移动速度是相同的,但是一旦蚂蚁碰到迎面走来的另一只蚂蚁,那么这两只蚂 ...