(1)、闭包的概念: 简单理解就是定义在一个函数内部的函数,内部函数持有外部函数内变量的引用;
(2)、闭包的优点:
1)、读取函数内部的变量;2)、方便调用上下文的局部变量,利于函数封装;
(3)、闭包的缺点:
1)、由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所有已不能滥用闭包,否则会造成网页性能的问题,在 IE 中可能导致内存泄漏的问题;解决的办法是,在退出之前,将不使用的局部变量全部删掉;
2)、闭包会在父函数外部,改变父函数内部变量的值;
(1)、创建一个空对象;
(2)、设置新对象的 constructor 属性为构造函数的名称,设置新对象的 __proto__属性指向构造杉树的 prototype;
(3)、使用新对象调用函数,函数中的 this 被指向新实例对象;
(4)、将初始化完毕的新对象地址,保存到等号左边的变量中;
简单的来讲,原型其实就是对象Object或者引用类型的 prototype 属性;当我们访问一个对象的属性的时候,如果对象里没有这个属性的时候,那么他就回去 prototype 中去寻找,如果 prototype 中没有的话,就会接着再 prototype 中的 prototype 中去寻找,这个寻找的链路就是原型链;
javaScript 的对象是通过引用类型来传递的,我们创建的每个新对象实体中并没有一份属于自己的原型副本,当我们修改原型时,与之相关的对象也会继承这一改变;当我们需要获取一个属性的值的时候,javaScript 引擎会先在当前对象中寻找,如果找不到的话就会去的 prototype 中寻找,并逐级递推;
原文:https://www.cnblogs.com/mufc/p/11301971.html