【问题标题】:JavaScript class error on Safari for iOSiOS 版 Safari 上的 JavaScript 类错误
【发布时间】:2017-03-27 20:42:42
【问题描述】:

我在 Javascript 中创建了一个自定义类,虽然它在 Mac OS 的 Safari 和 Chrome 上运行良好,但在我的 iPad 上却出错了。

我正在通过 Safari 上的“开发”菜单进行调试以获取错误。奇怪的是,网上没有结果,我可以找到更多关于它的信息。错误是“意外使用保留字'class'”。

我的 JS:

class LoadingIndicator{ // error is here

    constructor(elementID){

        this.tick = 8;

        this.waitStatus = document.getElementById(elementID);

        this.animateLoaderVar = setInterval(
                                    this.animateLoader.bind(this),
                                    10
                                )

    }

    animateLoader (){        

        if(this.tick == 8){

            this.waitStatus.firstElementChild.innerHTML = ".";

        }
        else if(this.tick == 16){

            this.waitStatus.firstElementChild.innerHTML = "..";

        }else if(this.tick == 24){

            this.waitStatus.firstElementChild.innerHTML = "...";

            this.tick = 0;

        }

        this.tick += 1;

    }

    removeLoader(){

        this.waitStatus.outerHTML = "";
        delete this.waitStatus;

        clearInterval(this.animateLoaderVar);

    }

}

【问题讨论】:

  • 用浏览器打开 safari can i use class?
  • 正在更新操作系统。我想大概就是这样。

标签: javascript ios class word reserved


【解决方案1】:

Class 是 ES6 的一部分,因此您使用的 ios 上的浏览​​器似乎不支持它。您的 iPad 使用的是哪个版本的 iOS?

这里还声明类声明以严格模式运行:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes

您可能必须使用'use strict';

或者如果它仍然没有帮助,https://babeljs.io/

【讨论】:

  • 它现在正在更新操作系统,我猜这就是原因。我正要看看什么是“类”等价物,但是您发布的 babel 链接看起来可以解决问题。惊人的。有点希望我能坚持写 ES6,但看起来等待会更安全。
  • 它应该在 ios9 及更高版本上支持:caniuse.com/#feat=es6-class,但是使用 babel 你可以确定并且 android 4.4 不支持它,所以使用 babel 你也可以覆盖它。所以也许这只是更新。
  • 我们得到了一台开发 iPad,虽然它是相当新的,但上面装有 iOS 8。现在我已经更新了。
猜你喜欢
  • 1970-01-01
  • 2012-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-01
  • 2017-05-28
  • 2015-08-31
  • 2016-03-22
相关资源
最近更新 更多