« 嘉 | 首页 | 色福大师 »
在 学习Javascript闭包(Closure) 留言:
做习题之前有一点需要很清楚: 内部函数可以访问定义它们的外部函数的参数和变量(除了this和arguments之外) 如果需要访问对象的name属性的话,就需要显示的定义一个变量that来引用this,而这个变量此时就指向object对象了。 第一题改成下面这样就很清楚了。getNameFunc的第一个()是属于方法调用,所以this绑定到了object对象,自然this.name为"My Object",但是闭包函数无法访问这个this,它只能访问到全局的this。 var name = "The Window"; var object = { name : "My Object", getNameFunc : function(){ alert(this.name); return function(){ return this.name; }; } }; alert(object.getNameFunc()());
2011-05-23 15:44:40
留言(1 条)
在 学习Javascript闭包(Closure) 留言:
做习题之前有一点需要很清楚:
内部函数可以访问定义它们的外部函数的参数和变量(除了this和arguments之外)
如果需要访问对象的name属性的话,就需要显示的定义一个变量that来引用this,而这个变量此时就指向object对象了。
第一题改成下面这样就很清楚了。getNameFunc的第一个()是属于方法调用,所以this绑定到了object对象,自然this.name为"My Object",但是闭包函数无法访问这个this,它只能访问到全局的this。
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
alert(this.name);
return function(){
return this.name;
};
}
};
alert(object.getNameFunc()());
2011-05-23 15:44:40