错误:this.style未定义?

时间:2014-03-30 05:38:07

标签: javascript

抱歉,我刚刚开始学习javascript。

所以我想创建隐藏slika[0]的函数。

function hide() {
  this.style.display ='none';
};        

slika[0] = setTimeout(hide, 4000);

错误是:

TypeError: this.style is undefined  
this.style.display ='none';

1 个答案:

答案 0 :(得分:1)

当您致电hide时,this将成为window对象,而window对象则没有style属性。这就是你得到的原因

this.style is undefined

如果您想要隐藏slika[0],那么您应该bind hide功能slika[0],就像这样

setTimeout(hide.bind(slika[0]), 4000);

现在,您已将slika[0]绑定到hide函数。因此,在调用hide时,this会引用slika[0],并将显示样式设置为none

如果你想要一个泛型函数,你可以简单地接受这个对象作为参数,比如

function hideObject(object) {
    object.style.display ='none';
}