您的位置:首页 > Web前端 > JavaScript

JavaScript 原型及原型链,闭包——小记

2018-02-28 18:52 302 查看
参考资料,并强烈推荐:最详尽的 JS 原型与原型链终极详解,没有「可能是」

知乎专栏:如何才能通俗易懂的解释javascript里面的‘闭包’?

原型:

所有对象的 _ proto _ 都指向其构造器的 prototype

var Person = {
name: '',
abc: function (){

}
}
var person1 = new Person()
person1._proto_ === Person.prototype
Person.__proto__ === Function.prototype
Function.prototype.__proto__ === Object.prototype
Object.prototype.__proto__ === null // true


闭包:

把函数当类用,说是闭包,其实也可以叫封装

闭包:在爷爷的环境中执行了爸爸,爸爸中返回了孙子,本来爸爸被执行完了,爸爸的环境应该被清除掉,但是孙子引用了爸爸的环境,导致爸爸释放不了。

这一坨就是闭包。

简单来讲,闭包就是一个引用了父环境的对象,并且从父环境中返回到更高层的环境中的一个对象。

function foo() {
var a = 2;
return function bar() {
console.log(a)
}
}
var baz = foo();
baz(); //2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: