Javascript IOS 7问题

Javascript IOS 7问题,javascript,ios,ios7,Javascript,Ios,Ios7,我有一个web应用程序,它在所有桌面浏览器和移动设备上都运行良好,但是自从IOS 7以来,我遇到了一个奇怪的问题 示例: 我正在设置一个对象,如 (function(){ //CONSTRUCTOR* sampleObject= new function(){ alert("loaded constructor "+ new Date().getTime()); //only outputted once //swfobject dom load event }

我有一个web应用程序,它在所有桌面浏览器和移动设备上都运行良好,但是自从IOS 7以来,我遇到了一个奇怪的问题

示例:

我正在设置一个对象,如

(function(){
  //CONSTRUCTOR*
  sampleObject= new function(){
    alert("loaded constructor "+ new Date().getTime()); //only outputted once 
    //swfobject dom load event
  }


...//functions and propeties related to sampleObject

})();

//ASSIGNING THE OBJECT
sampleObject = new sampleObject();
alert("finished assigning object "+ new Date().getTime()); //only outputted once 
问题:

在ios 7上,它似乎随机丢失了sampleObject,而是使用构造函数*还原到代码段中的内容。例如,我每隔一段时间对它进行调试,在我的对象上调用一个公共方法,比如sampleObject.getResource(“a”)

这些痕迹又回来了,就像:

sampleObject = [Object] //Correct
sampleObject = [Object]
然后它会随机地这样做:

sampleObject = function(){
        //swfobject dom load event
      }
这基本上就是构造函数中的代码*

这会导致我的代码抛出一个引用错误,因为我在整个过程中使用的公共属性/方法(如getResource)未定义

尝试过的事情:

  • 代码仅启动一次(使用单个日期/随机字符串发出一次警报)
  • 我发现了由于这个问题而发生错误的地方,尽管代码显然失败了,但它并没有进入捕获状态
  • 在不同的IOS版本上试用过,除了IOS 7之外,一切都很好
*构造器-不确定这是否被归类为构造器,但在我看来这就是构造器

**不幸的是,我不能公开发布我的代码,因为它是一个商业项目的一部分,而且非常广泛。。。。然而,有任何建议或任何人有任何类似的问题


谢谢

谢谢您对以上的评论。这为我指明了正确的方向

问题似乎是ios7似乎随机地丢失了javascript对象的作用域,而且因为我们没有专门将sampleObject分配给窗口,所以它没有一直工作

因此,我的问题的解决方案就是改变:

//指定对象 sampleObject=新的sampleObject()

//指定对象
window.sampleObject=新的sampleObject()

不确定为什么会出现问题,但为什么要对类和实例使用相同的名称?那真是让人困惑。你真的这样叫新人两次吗?第二个调用不应该起作用。这是我继承的,因此不知道其根本原因,但它在所有主流浏览器和移动浏览器中都起作用,并且到目前为止都已起作用……因此我的困惑是它实际上应该抛出一个“对象不是函数”错误…感谢您的注释,但我不明白为什么它会引发错误,我正在为sampleObject的prototype属性分配一些对象和属性。。。重命名构造函数变量似乎已经解决了这个问题,但我仍然不确定为什么你们认为它应该抛出一个错误,以及为什么它在除了ios7之外的任何地方都可以工作