var name = 'The Window';
var obj = {
name: 'My Object',
getNameFunc: function() {
return function() {
return this.name;
};
}
};
console.log(obj.getNameFunc()()); //The Window
相当于直接执行函数,则函数对象是window
var name2 = 'The Window2';
var obj2 = {
name2: 'My Object2',
getNameFunc: function() {
var that = this;
return function() {
return that.name2;
};
}
};
console.log(obj2.getNameFunc()()); //My Object2
这里的that是obj2
闭包输出的是什么
function fun(n, o) {
console.log(o);
return {
fun: function(m) {
return fun(m, n);//n是闭包
}
}
}
var a = fun(0);//undefined 0 0 0
a.fun(1);
a.fun(2);
a.fun(3);
var b= fun(0).fun(1).fun(2).fun(3);//
//undefined 0 1 2 3
var c=fun(0).fun(1);// //undefined 0 1 1 1
c.fun(2);
c.fun(3);