JavaScript之组合式继承

继承的概念
面向对象的三大特征:封装,继承,多态

封装:
将复杂的操作包裹起来,进行隐藏,简单化,安全化

继承:
拿来主义,自己没有,把别人的拿过来,让其成为自己的

JavaScript中有两种继承模型:
1.原型式继承
2.组合式继承

组合式继承就是将其他对象中的成员添加到自己身上

 var obj1={
 	name:"tom",
 	age:20,
 	sex:"male",
 	study:function(){
 		console.log(this.name+"正在学习!");
 	}
 };

 var obj2={
 	height:178.5,
 	sayHello:function(){
 		console.log("您好!");
 	}
 };

 obj1.address="武汉"; //为obj1添加一个属性
 

组合式继承,将对象2的属性和方法都搬到对象1:
方式一:

<script>
    for (var index in obj2) {
        obj1[index] = obj2[index];
    }
</script>

方式二:

 obj1.extend=function(obj){
 	for(var index in obj){
 		obj1[index]=obj[index];
 	}
 };
 obj1.extend(obj2);


 obj1.study();
 obj1.sayHello();
 console.log(obj1.height);

在这里插入图片描述

热门文章

暂无图片
编程学习 ·

二、21【设计模式】之状态模式

今天的博客主题设计模式 ——》 设计模式之状态模式状态模式 SP (State Pattern)定义允许对象在内部状态发生改变时改变它的行为,看起来好像修改了它的类。类的行为是由状态决定的,不同的状态下该类有不同的行为。就是一个对象在其内部改变的时候,它的行为也随之改变。核心…
暂无图片
编程学习 ·

easyui datagrid deleteRow(删除行)的BUG

有时候想临时保存一些数据,等确定好后在批量一次提交,但EasyUI datagrid 用的时候添加可以正常,如果从中间删除那行号就全乱了。导致删除的时候有可能删除上一行数据。function addFileRow(){$(#FileTable).datagrid(appendRow,{ File_Name:"aaaa",File_Path:&qu…
暂无图片
编程学习 ·

销售分析 II

题目描述:Table: Product+--------------+---------+ | Column Name | Type | +--------------+---------+ | product_id | int | | product_name | varchar | | unit_price | int | +--------------+---------+ product_id 是这张表的主键 Table: Sales+----…
暂无图片
编程学习 ·

qqwwee/keras-yolo3 多gpu训练问题

qqwweee/keras-yolo3模型默认采用的是一块GPU,在直接使用model = multi_gpu_model(model,gpus=N)时,模型会报错tensorflow.python.framework.errors_impl.InvalidArgumentError: Can’t concatenate scalars (use tf.stack instead) for ‘yolo_loss_1/concat’ (op: ‘Conca…
暂无图片
编程学习 ·

3D体验平台---PEVR软件

3D体验平台---PEVR软件背景概述产品介绍优势及亮点官网**公司背景**pevr实机画面 背景概述 pevr设计的出发点是为通用的3D互动软件和简单3D游戏的开发提供一个平台,它集成了3D互动所需的各种触发类型机制,以及各种类型的响应功能。同时允许使用者自行摆放触发,并编辑触发的响…
暂无图片
编程学习 ·

Finereport不破解前提下解除并发数限制,突破官网2个并发限制

官方免费版具有全部系统功能,但是只有2个并发,也就是2个以内用户可以访问,第三个用户访问就会提示“未注册,无法访问”,本案例中6个用户,超过了限制,所以没法实际使用,仅仅玩玩还行这里提供一款软件,实现不对免费版进行任何修改,通过搭建特殊环境,突破2用户在线访问限…
暂无图片
编程学习 ·

vue中实现一个搜索框的组件

在前端开发中有些东西就会经常反复使用,这样的东西抽取成组件比较合适,最近工作中遇到一个搜索楼盘的页面需要反复多次使用,抽取成了组件,现在记录一下1.创建一个searchcom.vue文件2.文件中填入一下代码,具体内容在代码后边进行解释<template> <div><heade…
暂无图片
编程学习 ·

CSS 总结

一、CSS三大特性:层叠性、继承性、优先级 层叠性 层叠性:就近原则。 分两种情况:同类选择器,第二个选择器样式会覆盖第一个选择器样式。 在同一个选择器中,相同的属性会以最后一个为准。继承性 继承性:子承父业 特殊:a标签不受影响因为它又自己的特性 优先级 优先级选择…
暂无图片
编程学习 ·

vue.js 介绍 (一)

Vue.js 是一个 JavaScript 的渐进式框架(可以由浅入深,由简单到复杂的使用。 Vue.js优点:体积小 33K 更高的运行效率 基于虚拟dom, 基于 js进行各种计算,把最终dom计算出来 双向数据绑定 生态丰富,学习成本低 大量基于 vue.js 的 ui框架,常用组件。如Element, IView。Vu…
暂无图片
编程学习 ·

第三章 第一个Java程序 世界你好

学习了前面的两章内容,我相信小伙伴们对于Java有了一定的认识。那么怎么写一个基本的Java程序呢?接下来,我们就通过一个最基本的最简单的程序来看看。在书写代码之前呢?我先介绍几款编译器,也就是常用的代码书写工具。可能有的小伙伴会说,一开始学习不是应该用记事本,然…
暂无图片
编程学习 ·

MySQL配置文件

MySQL配置文件 1.配置环境变量 新建MYSQL_HOME变量,变量值是包的路径。 2.然后再path中添加:%MYSQL_HOME%\bin 3.执行mysqld install命令当出现Service successfully installed时表示mysql服务安装完成 4.MySQL初始化 :输入: mysqld --initialize --console 执行完成后,会…
暂无图片
编程学习 ·

WWDC20 苹果发布会

iphone上的ios14亮点不多 主要是桌面小组件 分类app显示 画中画 还有小程序 来电小窗提示和siri ui更新与更加智能 还有汽车智能钥匙 不用带钥匙只需要nfc就可以打开车门与开车 首款支持的汽车是 宝马5系ipad上的ipadOS14 拥有ios14的的全部更新 更加方便的ui以及全局搜索 也…
暂无图片
编程学习 ·

C++Primer5th 第十六章 模板与泛型编程

第十六章 模板与泛型编程16.1 定义模板16.1.1 函数模板实例化函数模板 模板类型参数 非类型模板参数 inline和constexpr的函数模板 编写类型无关的代码 模板编译 模板大多数编译错误在实例化期间报告16.1.2 类模板定义类模板 实例化类模板 类模板的成员函数 类模板成员函数的实…
暂无图片
编程学习 ·

内网渗透 -- 获取内网浏览器历史记录等相关信息

“我喜欢你,做我女朋友可以吗?”电话的那头没有反应,男生沉不住气了,小心翼翼地问着,“你在干嘛呀?”“我在点头。”---- 网易云热评环境:小攻:Kali 2020,ip:192.168.1.133小受:win7 x86,ip:192.168.1.137一、生成木马及监听主机参考上篇文章:二、获取浏览器历史…
暂无图片
编程学习 ·

JetPack 之 Paging3.0 简单上手指南!

作者:Chsmy之前有一篇Paging2.x的使用和分析,Paging2.x运行起来的效果无限滑动还挺不错的,不过代码写起来有点麻烦,功能也不是太完善,比如下拉刷新的方法都没有提供,我们还得自己去调用DataSource#invalidate()方法重置数据来实现。最近google出了3.0的测试版,功能更加强…
暂无图片
编程学习 ·

面试之一句话简述volatile

volatile是轻量级的synchronized,他保证了可见性,底层的关键主要是LOCK指令,该指令有两个作用,一是强制把处理器缓存写回内存,二是一旦处理器缓存写回了内存,就让其他处理器上相同的缓存失效,这样的话,其他处理器想要修改某个被写回内存的变量,就得重新去内存取值,而…
暂无图片
编程学习 ·

vue3.0全家桶

Vue 3.0 全家桶抢先体验 1.vue: Beta 2.vue-router: Alpha 3.vuex: Alpha 4.vue-class-component: Alpha 5.vue-cli: Experimental support via vue-cli-plugin-vue-next 6.eslint-plugin-vue: Alpha 7.vue-test-utils: Alpha 8.vue-devtools: WIP 9.jsx: WIP 可以看到 Vue 3.0…