web

独一无二的symbol类型

声明类型为symbol的变量

var syb1=Symbol();
注意:symbol无法通过new来声明

每个新创建的symbol类型变量都是独一无二的,这点类似于数组和对象等引用类型,毕竟地址不可能有完全一样的

检测symbol类型变量

可以用typeof来检测变量是否为symbol类型
let symbol = Symbol(“test symbol”);
console.log(typeof symbol); // “symbol”

注意事项

Symbol类型不能用点运算符
Symbol 值作为对象属性名时,不能用点运算符,否则会把其当中字符串键处理【不管是设置值还是获取值都不能用.运算符,其实普通变量也是如此】

Symbol类型无法通过循环遍历

Symbol类型的键值对无法通过循环遍历出来,只能通过下标取值.

对象的合并–Obejct.assign

如果是对象的话,我们就可以使用Obejct.assign方法实现。

语法: Object.assign(target, …sources)
target 目标对象。【目标对象会被返回】
sources源对象。

[对象/数组]值的拷贝(复制、克隆)

浅层拷贝

概念
在拷贝时,对于属性值为引用类型的属性也只会拷贝其地址,而不是具体的值,

这会导致我们修改了拷贝后的引用类型数据时会影响到原对象中的引用类型属性。
1.通过for-in循环自己实现
在这里插入图片描述
2.通过Object.assign等方法直接实现
在这里插入图片描述

深层拷贝

1.通过for-in循环+递归进行实现
在这里插入图片描述
或者
在这里插入图片描述
2.通过JSON方法转换实现【不会转方法】

先用JSON.stringify方法把对象转换为字符串
在用JSON.parse()方法把字符串转为对象
在这里插入图片描述

这样最后得到的对象就是深度拷贝的对象了
在这里插入图片描述

对象中的this指向及其修改

【谁调用this所在的函数,那么this就指向谁】

1.如果this作为参数传入,那么this就是指向input 。
此时要注意形参接收时是不允许命名为this的(因为this为关键字)
2.如果直接在search中写this,那么this为将根据其上下文(即他属于谁)来决定,一般指向window

onclick事件中的this 【先获取标签元素】

在这里插入图片描述

构造函数中的this

this指向当前实例化的具体的对象(谁调用this所在的函数,那么this就指向谁)
比如:你new的wl,那么this指向wl
你new的孙六,那么this指向孙六
在这里插入图片描述

原型上方法中的this

谁调用this所在的函数,那么this就指向谁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值