文档章节

浅析继承方式

LinearLaw
 LinearLaw
发布于 2017/04/24 21:18
字数 287
阅读 8
收藏 0

最近发现有些概念都混淆了,重新回去查了下资料,做个记录。

1、原型继承

(1)、将对象指定为另一对象的原型,即可让该对象拥有另一对象的属性

不光光是属性,方法也可以使用。

    //创建构造函数
       function Person(){}

    //创建对象,并手动指定其constructor为Person
       var human = {
           constructor: Person,
           name: "jack",
           age: 18,
           gender: "male",
           say:function(){
                console.log("sayxxx")
           }
       };

    //指定构造函数Person的原型为human
       Person.prototype = human;

    //利用Person构造函数,创建实例化对象,该对象将会同时拥有Person和human的属性
       var p = new Person();
       console.log(p.name);
       console.log(p.say());

(2)、将对象的属性混入到原型中

       function Person(){}

       Person.prototype.extend = function (obj) {
           //本方法中的 this 指向的就是 Person.prototype
           for(var k in obj){
               this[k] = obj[k];
           }
       };
       var human = {
           name: "jack",
           age: 18,
           gender: "male"
       };

       Person.prototype.extend(human);

    //这里的extend相当于for-in语法
    //        for(var k in human){
    //            Person.prototype[k] = human[k];
    //        }

       var p = new Person();

2、经典继承

        Object.create()
        //这个方法有兼容性问题

        var obj = Object.create(obj1);
        //创建一个对象obj, 让obj1作为obj的原型

3、混入式继承(mix-in)

for(var k in obj1){
          obj[k] = obj1[k];        
}

© 著作权归作者所有

共有 人打赏支持
上一篇: 闭包
下一篇: Vue工程化
LinearLaw
粉丝 4
博文 36
码字总数 43561
作品 0
深圳
个人站长
私信 提问
Go入门教程

基础编程 01、Go语言介绍 02、环境搭建 03、第一个Go程序 04、命名、变量、常量 05、基础数据类型 06、格式化输出、类型转换、类型别名 07、运算符 08、流程控制 09、自定义函数 10、递归函数...

tennysonsky
01/19
0
0
跟我一起学习C++虚函数--第四篇

在前一篇,我们讨论了在多继承情况下,具有虚函数的类的内存布局情况。本篇将进一步探索在多重继承,即具有重复继承的情况下的内存布局情况。在阅读本篇和下一篇之前,建议先阅读本博客另一篇...

pathenon
2012/07/15
0
4
Javascript原型链和原型继承之浅析

哇好久都没有写随笔啦,整个人都慵懒啦。 为了不让大家忘记我,把以前写过的一些慢慢发出来。 在JS 中, 有两条链子,作用域链 和 原型链. 作用域链相对容易理解,两点 函数限定变量作用域,就是说...

sinat_34719507
2017/03/11
0
0
跟我一起学习C++虚函数--第五篇

在前一篇,我们讨论了在多重继承情况下,具有虚函数的类的内存布局情况。本篇将进一步探索在多重虚拟继承情况下的内存布局情况。 在讨论多重虚拟继承前,我们先对《浅析GCC下C++多重继承 & ...

pathenon
2012/07/15
0
0
android动画浅析

经过这几天对android动画的学习,本人对android动画有了些浅显的了解。 android动画分为三大类:帧动画(Frame animation)、补间动画(tween animation)、属性动画(property animation )...

风过后
2016/01/07
89
0

没有更多内容

加载失败,请刷新页面

加载更多

微服务分布式事务实现

https://www.processon.com/view/link/5b2144d7e4b001a14d3d2d30

WALK_MAN
24分钟前
0
0
《大漠烟尘》读书笔记及读后感文章3700字

《大漠烟尘》读书笔记及读后感文章3700字: 在这个浮躁的社会里,你有多久没有好好读完一本书了? 我们总觉得自己和别人不一样,所以当看到别人身上的问题时,很少有“反求诸己”,反思自己。...

原创小博客
59分钟前
1
0
大数据教程(9.5)用MR实现sql中的jion逻辑

上一篇博客讲解了使用jar -jar的方式来运行提交MR程序,以及通过修改YarnRunner的源码来实现MR的windows开发环境提交到集群的方式。本篇博主将分享sql中常见的join操作。 一、需求 订单数据表...

em_aaron
今天
1
0
十万个为什么之什么是resultful规范

起源 越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点...

尾生
今天
1
0
Terraform配置文件(Terraform configuration)

Terraform配置文件 翻译自Terraform Configuration Terraform用文本文件来描述设备、设置变量。这些文件被称为Terraform配置文件,以.tf结尾。这一部分将讲述Terraform配置文件的加载与格式。...

buddie
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部