在我的javascript文件中,我具有以下内容:
alert('loaded JS file');
class myClass{
constuctor(value){
this.value = value;
}
myfunc(){
//some method
return this.value;
}
}
在我的html文件中,我具有以下内容:
<script src="/myJSFile"></script>
<script>
let someVal = 5;
let myInstance = new myClass(someval);
</script>
这在所有计算机和某些移动设备上都可以正常运行,但是在所有移动设备上都不能正常运行。我的运行iOS 10的iPhone6遇到错误,其中从未执行alert('loaded JS file')
,因此出现错误:ReferenceError: Can't find variable: myClass
。但是,如果我从javascript文件中删除了创建类的代码,则会在移动设备上触发警报。因此,我的猜测是出于某些原因,某些手机不支持类声明,但实际上我不确定,因为我认为这在所有浏览器/设备上都是标准的。
为什么某些移动设备上的javascript文件不能仅加载 ?
答案 0 :(得分:0)
class
仅在ES2015中添加,并且不受普遍支持,尤其是在旧版移动操作系统上不支持。但是,例如,即使台式机上的IE11也不支持class
。详细信息:https://caniuse.com/#feat=es6-class
如果要在较旧的设备上使用class
,则需要转换到ES5代码。 (Babel是做到这一点的工具。)
(注意:您的构造函数中有一个错字,名称中缺少字母r
。)