1、函数作用域里的变量和函数只能由函数内部访问,作用域是分层的,内部函数可以访问外部函数作用域里的变量。functionfoo(){ varlocalVar='local' functionlocalFunc(){ console.log(local) } localFunc()//local } localFunc()//报
2023-02-261、JavaScript函数执行时,首先会在自己的AO中找到相应的属性值。2、如果找不到,就会去父级的AO上找,在找不到的时候再去父级的父级找,直到找到window对象,这样形成的AO链就是作用域链。实例functionfoo(){ functionbar(){ varinner=234; outer=
2023-02-261、__proto__对象原型和原型对象 prototype 是等价的。2、意义在于为对象的查找机制提供一个方向。但是作为非标准属性,因此实际开发中,不可以使用这个属性,它只是内部指向原型对象prototype。实例//代码说明: functionPeople(uname){ this.u
2023-02-261、将子类所共享的方法提取出来,让子类的prototype 原型对象 = new 父类()。子类原型对象等于是实例化父类。因为父类实例化之后另外开辟空间,就不会影响原来父类原型对象2、将子类的constructor重新指向子类的构造函数。实例//父构造函数 f
2023-02-261、当网络状态不好时,目标图片加载缓慢,需要一张体积小的图片充当占位符。2、监听DOM的load事件,在DOM对象已加载时,发生此事件。实例<body> <imgsrc="./red.png"/> <script> constoImg=document.querySelector('img'); oImg.onload=f
2023-02-261、又称伪造对象或借用构造函数,在子类型构造函数内部调用超类型构造函数。2、函数只是在特定环境下执行代码的对象。因此,通过apply()和call()方法,构造函数可以在新对象上执行。即在子类型对象上执行父类型函数中定义的所有对象的初始化代
2023-02-261、定义一个原型对象,然后用Object.create()创建一个继承它的对象。2、使用构造函数定义其prototype属性,调用构造器-构造函数的prototype属性将被用作新对象的原型。ES6的类语法实际上是构建函数prototype的语法糖。实例fuctionEngineer(pa
2023-02-261、代理的类型主要包括保护代理和虚拟代理。保护代理用于控制不同权限对象对目标对象的访问。2、虚拟代理则将大成本对象推迟到真正需要它的时候。虚拟代理在Javascript中更常用。实例varmyImage=(function(){ varimgNode=document.creat
2023-02-261、组合模式将对象组合成树形结构,以表示部分-整体的层次结构。2、除了用来表示树形结构外,组合模式的另一个优点是通过对象的多态性表达,用户可以一致地使用单个对象和组合对象。使用组合模式后,很容易扫描整个文件夹,我们只需要操作树的顶部
2023-02-261、reduce()和reduceRight()迭代数组的所有项,然后构建最终返回值。常用于累做数组项累加,数组降维,数组去重,统计出现次数。2、归并的初始值为0,每项累计最终返回结果。实例letarr=[[1,[2,4]],3]; //数组降维:reduce functionflattenDeep(arr
2023-02-261、类似于数组的arguments对象包含传入函数中的所有参数,它具有callee属性,用于执行函数本身。2、arguments.callee可用于消除阶乘函数中的耦合(仍然不是函数名称)。实例//普通阶乘,依赖于函数名,且函数名不能改变 functionfactorial(num){ if
2023-02-261、this指向函数的执行环境对象,在网页的整体作用域中调用函数时,this对象引用window。2、this指向函数的执行环境对象,saycolor在全局作用域执行。实例window.color="red"; varo={color:"blue"}; functionsayColor(){ varcolor="123"; alert
2023-02-26发布日期:2023-08-07人气:0
发布日期:2023-08-07人气:0
发布日期:2023-08-07人气:0
发布日期:2023-08-08人气:0
发布日期:2023-08-08人气:0
发布日期:2023-08-10人气:0
发布日期:2023-08-10人气:0