首页 新闻 会员 周边

函数属于哪个对象?

0
悬赏园豆:5 [待解决问题]

window.onload = function() {
  function fn() {
    alert(this);
  }
  fn();
  window.fn();
}

如上代码,直接执行fn()函数会打印出[object window],但是执行window.fn()会报错,就是说fn()函数不属于window对象,那么它属于哪个对象呢?

夜之圣子的主页 夜之圣子 | 初学一级 | 园豆:5
提问于:2015-12-18 10:19
< >
分享
所有回答(3)
0

window.onload = function() {
  window.fn();
}
function fn() {
  alert(this);
}

是调用的地方不对~~这样就对了

夜之圣子 | 园豆:5 (初学一级) | 2015-12-18 10:34
0

>>直接执行fn()函数会打印出[object window]

这是因为fn()是window调用的,所以this指的是window。和fn()函数属不属于window没有关系。关键点在this。

>>执行window.fn()会报错

把fn()函数定义在onload外面,fn()就会被当作window的一个方法,就可以用window.fn();这样来调用。

是你函数定义的地方搞错了。

 

狂乱の貴公子 | 园豆:262 (菜鸟二级) | 2015-12-18 11:23
0

fn是一个私有函数,所以调用不了。它是属于onload之后的那个function的。

幻天芒 | 园豆:37175 (高人七级) | 2015-12-19 10:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册