深入理解js的原型和闭包系列1

原文链接:

https://www.cnblogs.com/wangfupeng1988/p/3977924.html

https://www.cnblogs.com/wangfupeng1988/p/3977924.html

对象——若干属性的集合。
---------------------------------------------------------------重点要牢记-------------------------------------------------------------

要到创建这个函数的那个作用域中取值——是“创建”,而不是“调用”,
要到创建这个函数的那个作用域中取值——是“创建”,而不是“调用”,
要到创建这个函数的那个作用域中取值——是“创建”,而不是“调用”,
要到创建这个函数的那个作用域中取值——是“创建”,而不是“调用”,
要到创建这个函数的那个作用域中取值——是“创建”,而不是“调用”,
要到创建这个函数的那个作用域中取值——是“创建”,而不是“调用”,
要到创建这个函数的那个作用域中取值——是“创建”,而不是“调用”,

13.自由变量: 在A作用域中使用的变量x,却没有在A作用域中声明(即在其他作用域中声明的),对于A作用域来说,x就是一个自由变量;
要到创建这个函数的那个作用域中取值——是“创建”,而不是“调用”, 这个一步步找的过程,就是作用域链

var x=10;
function fn(){
console.log(x);
}

function show(f){
var x=20;
(function (){
f(); //输出是10,而不是20. 不管在哪里调用这个fn,fn都是在全局作用域中创建的,所以就去那个作用域中取x的值。
})();
}
show(fn); //在fn函数中,取自由变量x的值时,要到哪个作用域中取?——要到创建fn函数的那个作用域中取——无论fn函数将在哪里调用


任何一个函数的prototype都是被Object创建,所以它(函数的prototype)的__proto__指向的就是Object.prototype (除了这个Object.prototype.__proto__ == null)
任何一个函数都是由Function创建,所以此函数的的__proto__指向的就是Function.prototype


任何一个函数的prototype都是被Object创建,所以它(函数的prototype)的__proto__指向的就是Object.prototype (除了这个Object.prototype.__proto__ == null)
任何一个函数都是由Function创建,所以此函数的的__proto__指向的就是Function.prototype


任何一个函数的prototype都是被Object创建,所以它(函数的prototype)的__proto__指向的就是Object.prototype (除了这个Object.prototype.__proto__ == null)
任何一个函数都是由Function创建,所以此函数的的__proto__指向的就是Function.prototype

=======================================

原文地址:https://www.cnblogs.com/yyzyxy/p/8674887.html