今日学习内容: 一、this的指向 概念:this是一个对象,this.属性名 调用里面的东西 this的7种指向: 1. 全局中的this---window 2. 函数中this---谁调用,指向谁 3. 对象方法中---谁调用,指向谁 4. 构造函数中----实例对象 5. 定时器的回调函数中----window 6. 事件处理函数中-----事件源 7. 箭头函数----上一级,箭头函数没有this,他的this指向的是绑定定义函数所处的作用域 修改this指向 1. call() apply() 这两个方法都可以调用函数,在调用函数的同时,可以指定this的指向 函数(实参); 函数.call(this对象,参数1,参数2,....) 函数.apply(this对象,[实参1,实参2,.....]) 2. bind() 把函数的this绑定到一个目标对象上,然后返回一个新函数 后续只需要调用新函数,新函数的this永远指向了绑定的目标对象 二、数据类型的分类 ES5: 基本:string number undefined null boolean 引用:object function array ES6: 基本:string number undefined null boolean symbol 引用:object ES11---bigInt:科学计算 数据类型的内存分配 基本:栈 引用:堆,栈中存放的是它在堆中的地址,指向堆中的数据 变量的复制 基本:传递值的拷贝 引用:传递地址的拷贝 传递参数 基本:传递值的拷贝 引用:传递地址的拷贝 三、深浅拷贝 1. 为什么要拷贝? 如果是引用类型,直接复制,两个对象会共享一份数据,只要修改其中一个对象,就会对另外一个对象造成影响 2. 浅拷贝:只会拷贝对象的一层 3. 深拷贝:每一层都拷贝 四、变量的类型检测 typeof:主要用于检测基本类型 instanceof:主要用于检测引用类型 Object.prototype.toString.call(变量/实例对象) 二、今日问题:无 三、解决方案:无
|