- 对象   - 属性   - 方法   - js对象基于构造函数和原型链 - 构造函数   - js使用构造函数来当做对象的模板,即java中的类   - 构造函数时对象首字母大写为了区别其他函数   - 如果在构造函数内有return关键字,如果return后是一个对象,那么就会返回这个对象而不是新构造的this对象   - 构造函数特点     - 函数内部使用了this关键字,代表了所要生成的对象实例     - 生成对象的时候必须使用new命令     - 执行构造函数时     - 如果不加new,那么生成的变量变成undefined   - 如何在开发人员忘记使用new时仍然能够正常执行构造函数     1.使用严格模式 'use strict',在不适用new时会提示错误     2.在构造函数 用if this instanceof class判断,这里的class是构造函数,意思是判断this是不是构造函数生成的对象     3.在构造函数中用new.target,如果当前构造函数使用了new方法,那么new.target就会指向构造函数,      如果没有使用new,那么就会抛出一个错误 - new 关键字   - 作用就是执行构造函数,返回一个实例对象   - new命令执行的时候,构造函数内部的this就代表了新生成的实例对象   - new命令本身就可以执行构造函数,所以后面的构造函数可以带括号,也可以不带括号   - new原理     - 1.创建 创建一个空对象     - 2.指向 将这个空对象的原型指向构造函数的prototype属性     - 3.赋值 将空对象赋值给函数内部的this关键字     - 4.开始执行 执行构造函数内部代码   - new总是返回一个对象,要么是实例对象,要么是return语句指定的对象 - this 总是返回一个对象   - 是属性或者方法当前所在的对象   - 因为对象的属性是可以赋给另一个对象,所以属性所在的当前对象是可变的,即this的指向是可变的   - this设计目的     - 在函数体内部明确函数当前环境   - 使用场合     - 全局环境 全局环境使用this,它指的就是顶层对象window     - 构造函数 构造函数中的this指的是实例对象     - 对象方法里包含this,this的指向就是方法运行时所在对象     - 在事件中,this表示接收事件的元素   - 注意事项     - 避免多层使用this this的指向是不确定的     - 避免数组处理方法中的this     - 避免回调函数中的this   - 绑定this 的方法 - 通过模板创建对象的两种方法   - 通过构造函数   - 通过Object.create() b = Object.create(a) 以a为模板创建对象b   tips: 1. this instanceof class 判断是不是该class的实例 2.如果给普通函数前面加new,那么会返回一个空对象 3.js中一切皆对象,环境,函数,等都是对象 4.js中每个函数就是一个对象,函数对象都有一个子对象prototype对象,类是以函数的形式来定义的,prototype表示该函数的原型   问题: 1.prototype是什么,和this有什么关系 2.全局变量是顶层对象的属性么    
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄