这指向IE8中的窗口

时间:2013-11-19 18:44:17

标签: javascript internet-explorer-8 this

据我所知,这适用于chrome,FF和IE> 9。 但它在IE8中不起作用。控制台说“对象不接受方法或属性”(或类似的东西,它是西班牙语,我不知道英语中的确切单词) 经过一些调试后,我注意到this没有我在里面的函数,而是window对象。

var slider = function(sel, pagination, paginationThumbs, form_factor)
{
    var that = this;

    (some code)

    this.init = function(sel,pagination,paginationThumbs,form_factor)
    {
        (more code)         
    }

    this.init(sel,pag,paginationThumbs,form_factor);   //it blows here

};

后来我称之为

slider('.sliderClass',3,true,0.75);

对可能发生的事情的任何想法?

2 个答案:

答案 0 :(得分:4)

使用

  

新滑块('。sliderclass',3,true,0.75);

而不是

  

滑块(”。sliderClass',3,真实,0.75);

答案 1 :(得分:1)

可能发生的事情this实际上是指IE因某些奇怪的原因而不允许访问的窗口对象

您可以执行的操作是调用滑块调用new slider(/* params */);

或代替this.init = function(){};

你可以放var init = function(){};

然后调用它就像init();

一样简单
var slider = function(sel, pagination, paginationThumbs, form_factor)
{
    var that = this;

    (some code)

    var init = function(sel,pagination,paginationThumbs,form_factor)
    {
        (more code)         
    }

    init(sel,pag,paginationThumbs,form_factor);   //it blows here

};