总结

变量提升:在js代码执行前,浏览器会给一个全局作用域window,window分为俩个模块,一个是内存模块,一个是执行模块,

     内存模块会找到所有带var 和function 的关键字,执行模块会依次从上到下开始执行,遇到变量就会通过内存地址

     找有没有这个变量,有就看它有没有赋值,赋值了就是值,没有赋值就是undefined,如果没有找到这个变量就是

     is not defined

作用域链:对象.属性的时候,首先看它是不是私有的,私有的有就使用,私有的没有就找共有的,公有的有就使用,没有就

     按--proto--看它的类上有没有,有就使用,没有就继续向上查找,知道找到基类object,如果object没有就是undefined

原型分析:类天生自带prototype属性,属性值是对象

     prototype对象天生具有一个constructor属性,属性值是类本身

     实列天生有一个--proto--指向自己累的原型

面向对象:通过函数封装得到一个类,通过类实列出子对象,封装过程中函数类的,都是子实列的私有属性,在原型上的都是可

     继承的公有属性,实列在操作的过程中会看他是不是私有的,私有的就使用,私有的没有就找公有的,公有的就

     按--proto--看它的类上有没有

闭包:函数在掉用的过程中,会形成一个私有作用域,里边的变量不会被外部访问,这种保护机制叫做闭包。

生处对象的3种模式:1 单例模式  

            优势:每个对象都是独立的,即使他们的起名一样,也不会相互干扰

            缺点,不可以批量生产,只能一个一个的去创建。

            2 工厂模式

            优势,可以批量生产,减少冗余代码,提高代码重复利用率

            3 构造函数

             函数名首字母必须大写

               里面的属性前面必须加this

               函数调用的时候

必须使用new关键字

原文地址:https://www.cnblogs.com/yang08/p/9953281.html