摘要:闭包就是定义在函数中的函数,是函数内外部连接的桥梁,闭包的意义是当前作用域总是能够访问外部函数作用域的变量函数是唯一拥有自身作用域的结构,所以闭包的创建依赖于函数闭包的优点也是缺点,可以避免使用全局变量全局变量污染导致应用程序不可预测性,推
闭包就是定义在函数中的函数,是函数内外部连接的桥梁,闭包的意义是:当前作用域总是能够访问外部函数作用域的变量;函数是唯一拥有自身作用域的结构,所以闭包的创建依赖于函数 闭包的优点也是缺点,可以避免使用全局变量(全局变量污染导致应用程序不可预测性),推荐使用私有
闭包函数:将所在函数作用域中的变量长期驻留在了内存中。(内存泄露 )
闭包的应用场景:
1. 保护函数内的变量的安全 2. 在内存中维持一个变量 3. 通过闭包返回局部变量 4. 使用全局变量进行累加和 5. 使用局部变量进行累加和 6. 循环里的匿名函数的取值问题
原型继承
function Father(){}//构造函数 //原型属性 Father.prototype.name = "李四"; Father.prototype.age = 24; //原型方法 Father.prototype.showName = function(){ return this.name; } Father.prototype.showAge = function(){ return this.age; } function Son(){} //原型链继承 //Son.prototype = Father.prototype; //Son.prototype = new Father(); //遍历父类的原型 for(var i in Father.prototype){ Son.prototype[i] = Father.prototype[i]; } var son1 = new Son(); alert(son1.showName()); alert(son1.showAge());
经典继承
//构造函数 function Father(name,age,money){ //实例属性 this.name = name; this.age = age; this.money = money; //实例方法 this.showName = function(){ return this.name; } this.showAge = function(){ return this.age; } this.showMoney = function(){ return this.money; } } function Son(name,age,money,sex){ //经典继承、伪装继承、冒充继承(call,apply)只能继承实例 //Father.apply(this,arguments); //Father.call(this,name,age,money); Father.apply(this,[name,age,money]); this.sex = sex; this.showSex = function(){ return this.sex; } } var son1 = new Son("张三",23,20000,"男"); alert(son1.showName()); alert(son1.showAge()); alert(son1.showMoney()); alert(son1.showSex());
call与aplly的异同:
1. 第一个参数this都一样,指当前对象 2. 第二个参数不一样:call的是一个个的参数列表;apply的是一个数组(arguments也可以)
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/92293.html
摘要:在上面的执行中,只是又返回了一个新的对象,但是并没有执行新对象里面的属性对应的匿名函数喔,那就是没有改变的值啊,所以你继续也会输出同样的结果啊。 关于javascript中的闭包 我GitHub上的菜鸟仓库地址: 点击跳转查看其他相关文章 文章在我的博客上的地址: 点击跳转 其实关于闭包的定义,很多种说法,而关于闭包的解释,更是多不胜数了。很多说得非常复杂,也有很多...
摘要:之前一篇文章我们详细说明了变量对象,而这里,我们将详细说明作用域链。而的作用域链,则同时包含了这三个变量对象,所以的执行上下文可如下表示。下图展示了闭包的作用域链。其中为当前的函数调用栈,为当前正在被执行的函数的作用域链,为当前的局部变量。 showImg(https://segmentfault.com/img/remote/1460000008329355);初学JavaScrip...
摘要:之三关于闭包和递归开篇这一期本来是打算写闭包的,但是无意中看到高级程序设计中闭包的前一章就是递归。闭包练习题这个板块会实时补充的关于递归其实说到递归,主要就是要说这个的用法,其实主要就是调用自己的外围函数,并且可以传参。 之三:关于闭包和递归 1. 开篇 这一期本来是打算写闭包的,但是无意中看到《JavaScript高级程序设计》中闭包的前一章就是递归。所以拿出来一起讲一下吧! 我觉得...
摘要:闭包解决的问题获取到函数内部的变量让变量不会随着函数执行完毕就销毁而是保存在内存中模拟私有变量闭包产生的问题容易造成内存泄漏,保存的多了,却没有释放的指向问题,在闭包里,指向的是关于闭包的小东西比如注释部分省了外壳, 闭包概念:能够访问另一个函数作用域的变量的函数,来个栗子 showImg(https://segmentfault.com/img/bVbvnmY?w=604&h=245...
阅读 2311·2019-08-30 15:44
阅读 1241·2019-08-30 13:01
阅读 3276·2019-08-30 11:22
阅读 3059·2019-08-29 15:23
阅读 1591·2019-08-29 12:22
阅读 3345·2019-08-26 13:58
阅读 3422·2019-08-26 12:17
阅读 3441·2019-08-26 12:16