var user = {
count : 1,
getCount: function(){
return this.count;
}
}
var func = user.getCount
console.log(func())
var user = {
count : 1,
getCount: function(){
return this.count;
}
}
var func = user.getCount
console.log(func())
看清楚调用时。
user.getCount传递是引用传递。
实际上
func = function(){
return this.count;
}
此时再调用,则this指向全局window
this指针的问题,func()里面的this不是user对象,而是user.getCount函数本身,而user.getCount对象没有count属性,所以是undefined
var user = {
count : 1,
getCount: function(){
return user.count;
}
}
var func = user.getCount
console.log(func())
this指的是window
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
this
指向变了user.getCount()
这里的this
指向的user
这个对象但是,当你将他赋值给一个变量 执行
func()
的时候,在浏览器环境相当于window.func()