面试题总结
来源:互联网 发布:淘宝退货邮费谁承担 编辑:程序博客网 时间:2024/06/06 00:47
2、如何让将js闭包内部局部变量全部删除?
var foo = (function() { var n = 0; return { add: function () { return ++n; }, clearVariable: function () { n = null; } }})();外部是无法访问到闭包里边的变量,但可以在闭包内部返回一个方法,该方法将闭包内部的变量设置为null,让变量失去引用,会被系统自动回收。
Javascript 闭包,引用的变量是否被回收?
https://www.zhihu.com/question/40678847/answer/87982345
function Person(area){ this.type = 'person'; this.area = area;}Person.prototype.sayArea = function(){ console.log(this.area);}var Father = function(age){ this.age = age;} Father.prototype = new Person('Beijin');console.log(Person.prototype.constructor) //function person()console.log(Father.prototype.constructor); //function person()Father.prototype.constructor = Father;//修正console.log(Father.prototype.constructor); //function father()var one = new father(25);
首先,constructor
是原型对象上的一个属性,默认指向这个原型的构造函数。
当你没有进行斧正的时候,
var one = new Father(25)
console.log(one.constructor) // function Person() {}
由Father
构建出来的对象one
的构造函数指向是Person
,而不是你new
它的时候用的构造函数Father
。这就导致了原型链的错乱。
因为在
Father.prototype = new Person('Beijin');
这一步的时候,原型指向了一个新对象,这个新对象的constructor
指向的是Person
。
Father.prototype.constructor = Father; // 修正
这一步的修正,也就相当于在new Person()
的对象上添加一个constructor
属性,重新指向Father
,保证原型链的正确。
factory、service、provider区别
阅读全文
0 0
- java面试题总结
- 面试题总结
- 面试题(总结)
- .NET面试题总结
- .net面试题总结
- 面试题总结
- java面试题总结
- vxworks面试题总结
- android面试题总结
- SSH面试题总结
- C++面试题总结
- SSH面试题总结
- 面试题总结
- 算法面试题总结
- java面试题总结
- android面试题总结
- java面试题总结
- 面试题总结
- DB2 系统命令与配置参数大全
- hive官方文档翻译
- HTML的补充,HTML框架
- 第二周——项目二—程序的多文件组织
- 数据库锁机制
- 面试题总结
- 游戏制作相关
- 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 F. Trig Function
- 题目13-Fibonacci数
- mac忘记MySQL本地数据库密码解决办法
- 刷题
- Codeforces 837A Text Volume
- 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 G Xor lca+暴力
- C/C++之回调函数