闭包面试题

var name = "The Window";
var object = {
name: "My Object",
getNameFunc: function () {
// this 指向调用该函数的那个对象 object
// 这里就是闭包,局部变量 that 保存了当前 object 对象
var that = this;
console.log(that === object); // true
return function () {
// 形成了闭包,that 能使用到外层函数的局部变量
// that === object
console.log(that === object);
// 返回 that.name 相当于返回了 object.name
return that.name;
};
}
};

var res = object.getNameFunc();
var LifnRes = res();
console.log(LifnRes);    // "My Object"
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容