从零开始的全栈工程师——JS面向对象( 六大继承 )
一、对象克隆
var obj = {
name:'li',
age:23
}
var obj2 = obj;
// 这不是对象克隆 只是把obj的内存地址给obj2
1.for in克隆(浅拷贝) 浅拷贝 --> 主要针对第一层的属性进行拷贝
通过for in克隆 不管是私有的还是公有的 都克隆成私有的
2.for in克隆(深拷贝) 深拷贝 --> 将属性值也一个一个的遍历赋值
针对所有的属性进行拷贝不管套了几层 如果对象中的属性值又是一个引用数据类型 浅拷贝 还是把后面的引用数据类型的地址赋值给空对象的一个属性
3.Object.create( )
js提供了一个克隆的方法 Object.create( ) 将obj的所有属性克隆到obj2的原型上
二、继承
1.原型继承 --> 将父类的私有和公有属性都继承为子类的公有属性
2.call继承 --> 将父类的私有属性继承为子类的私有属性
3.冒充对象继承 --> 将父类私有的和公有的都继承为私有的
4.混合继承 --> 利用call继承和原型继承 私有的继承私有 公有继承私有和公有
5.组合继承 --> 利用call继承和克隆对象 私有继承私有 公有继承公有
6.中间类继承 --> 使其他数据类型也可以使用其他内置对象的方法 赋值为内置类的原型
从零开始的全栈工程师——JS面向对象( 六大继承 )的更多相关文章
- 从零开始的全栈工程师——JS面向对象(复习)
作用域 栈内存:js执行的环境堆内存:存放代码块的空间 存放方式 键值对形式存放 字符串的形式存放js在执行之前 浏览器会给他一个全局作用域叫window 每个作用域下都分为两个模块 一个是内存模块一 ...
- 从零开始的全栈工程师——JS面向对象(初篇)
面向对象编程 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式.它使用先前建立的范例,包括模块化,多态和封装几种技术.今天,许多流行的编程语言(如Java,JavaScript,C#,C+ ...
- 从零开始的全栈工程师——JS面向对象( 原型 this 继承)
一.生成对象的方式 ①单例模式(字面量定义)var obj = {} ②类的实例 var obj = new Object( ) ③工厂模式 ④构造函数:扮演三种角色 普通函数 普通对象 类 工厂模式 ...
- 从零开始的全栈工程师——js篇2.12(面向对象)
面向对象 Js一开始就是写网页特效,面向过程的,作者发现这样写不好,代码重复利用率太高,计算机内存消耗太大,网页性能很差. 所以作者就收到java和c的影响,往面向对象靠齐.Js天生有一个Object ...
- 从零开始的全栈工程师——js篇2.20(事件对象 冒泡与捕获)
一.复习 面向对象 1)单例模式 2)工厂模式 3)构造函数 ①类js天生自带的类 基类object function array number math boolean date regexp st ...
- 从零开始的全栈工程师——js篇2.5
数据类型与全局属性 js的本质就是处理数据 数据来自于后台的数据库所以变量就起到一个临时存储数据的这作用ECMAscirpt 制定了js的数据类型 一.数据类型 1.基本数据类型 基本数据类型就是简单 ...
- 从零开始的全栈工程师——js篇2.1(js开篇)
JS开篇 一.js介绍 全称 javascript 但不是java 他是一门前台语言 而java是后台语言js作者 布兰登·艾奇 前台语言:运行在客户端的后台语言:跟数据库有关的 能干什么? 页 ...
- 从零开始的全栈工程师——js篇(闭包)
闭包是js中的一大特色,也是一大难点.简单来说,所谓闭包就是说,一个函数能够访问其函数外部作用域中的变量. 闭包的三大特点为: 1.函数嵌套函数 2.内部函数可以访问外部函数的变量 3.参数和变量不会 ...
- 从零开始的全栈工程师——js篇(js的异步)
js中的异步 Javascript语言的执行环境是"单线程"(single thread,就是指一次只能完成一件任务.如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任 ...
随机推荐
- JDBC记录
13:55 2018/7/22 用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问 ---------常用API--------- |- Driver接口: 表示java驱动程序接 ...
- 校园网络安全CTF 第一题 和 你真了解我吗?
第一题: 需要先找到相应头(REsponse header中的tips) <?php$flag = "***";if (isset($_GET['repo']))//检测变量 ...
- 【算法笔记】B1016 部分A+B
1016 部分A+B (15 分) 正整数 A 的“DA(为 1 位整数)部分”定义为由 A 中所有 DA 组成的新整数 PA.例如:给定 A=3862767,DA=6,则 A ...
- bzoj3261: 最大异或和 (可持久化trie树)
题目链接 题解 看到异或和最大就应该想到01 trie树 我们记\(S_i\)为前i项的异或和 那么我们的目的是最大化\(S_n\)^\(x\)^\(S_{j-1}\) \((l <= j &l ...
- c# 委托访问listbox多线程操作
c# 委托访问listbox多线程操作 using System;using System.Collections.Generic;using System.ComponentModel;using ...
- 计算hashCode通用计算公式
1.java计算公式 @Override public int hashCode() { //设置初始值 ; //假设有效域为: name,age,idCardNo,incomeAnnual,sex, ...
- springboot(八)-定时任务
在我们的项目开发过程中,经常需要定时任务来帮助我们来做一些内容. 如果我们不用springboot开发的话,我们写定时任务需要写那些配置呢? 我们需要在application.xml文件中添加以下配置 ...
- vue 浏览器顶部有载入(进度)动画插件vue-progressbar
1.安装 npm install --save nprogress 2.在main.js中引入 import NProgress from "nprogress" import & ...
- Python学习 day08
一.open打开文件 文件操作包含以下三个步骤: 1.文件路径 2.编码方式 3.操作方式:‘’只读‘’.“只写”.“读写” 等 1.只读 r (mode默认值) 例: f = open('d:\py ...
- (转)浅谈千万级PV/IP规模高性能高并发网站架构
浅谈千万级PV/IP规模高性能高并发网站架构 原文:http://blog.51cto.com/oldboy/736710 文章架构简图: 高并发访问的核心原则其实就一句话“把所有的用户访问请求都 ...