首页 > 代码库 > 闭包的查找变量顺序
闭包的查找变量顺序
//var n=9; function f1(){ //n=99; function f2(){ var n=999; console.log(n); } return f2; } var result=f1(); result(); // 999 //先在f2中查找有没有变量n,再在f1中查找有没有变量n,最后在全局作用域中查找有没有变量n
看下面这几个例子就知道闭包的查找顺序了(其实就是根据函数的作用域链来查找)
var name="xiu"; var obj={ name:"xie", getName:function(){ return function(){ var name="baobao"; return name; } } } alert(obj.getName()());//baobao
var name="xiu"; var obj={ name:"xie", getName:function(){ return function(){ return name; } } } alert(obj.getName()());//xiu
var name="xiu"; var obj={ name:"xie", getName:function(){ return function(){ return this.name; } } } alert(obj.getName()());//xiu
var name="xiu"; var obj={ name:"xie", getName:function(){ var that = this; return function(){ return that.name; } } } alert(obj.getName()());//xie
闭包的查找变量顺序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。