javascript - 功能未定义
问题描述
这是我的代码:
// And my javascript file verbatims.js :
class Verbatims {
list() {
return ["c'est super", "j'aime pas", "ça marche bien"];
}
}
module.exports = Verbatims;
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta content="X-Content-Type-Options: nosniff">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.18/vue.min.js"></script>
<script src="/src/verbatims.js" type="application/javascript"></script>
<title>My Project</title>
</head>
<body>
<div id="PRISME_data">
Le nombre de requête est de : {{ nb_request }}<br>
<button v-on:click="change">Change value</button>
<button v-on:click="stop">Arrêter</button>
</div>
<script>
let app = new Vue({
el:'#PRISME_data',
data: {
nb_request: "toto",
ite: 0
},
methods: {
change: function() {
changeNbRequest()
},
stop: function() {
clearInterval()
}
}
});
changeNbRequest = function() {
var timer = setInterval(function() {
let verbatim = new Verbatims().list()[ite];
}, 5000);
}
</script>
</body>
</html>
当我尝试使用节点服务器显示我的页面时,出现此错误:
未捕获的 ReferenceError:逐字未在索引处定义:45
在这条线上:let verbatim = new Verbatims().list()[ite];
我不明白为什么,我尝试了很多东西,但没有任何效果!你有什么主意吗 ?
谢谢 :)
解决方案
这可能是由于以下原因而发生的:
- 由于路径错误,verbatims.js 文件未在浏览器中加载。
- 到达浏览器的 verbatims.js 文件不包含您的类。
- 您没有在引用脚本上导入 Verbatims 类。
第三个选项的修复应该是这样的:
<script type="module">
import {Verbatims} from './src/vebatim.js';
....ommitted for brevity
changeNbRequest = function() {
var timer = setInterval(function() {
let verbatim = new Verbatims().list()[ite];
}, 5000);
}
</script>
附加提示
要改进您的代码,请尝试将 index.html 中的所有 JS 代码放到外部文件中,以便您可以利用 ES6 导入/导出功能。
推荐阅读
- excel - PowerQuery COUNTIF 以前的日期
- java - 注册表单:404错误
- python - Pandas:根据是否为 NaN 移动列
- glsl - 对于两个向量 a、b,给定它们之间的 45 度角,此着色器代码返回什么?
- c# - 缩短功能
- javascript - 如何将测试用例组织成大型应用程序的测试套件
- unity3d - Unity表面着色器不会在自身上投射阴影
- tfs - 还原 TFS 备份时出错:TF400856:以下服务未在数据库中注册:IdentityManagement
- c# - 使用 Asp.Net 创建带有回复选项的评论框
- powershell - 获取帮助:找不到自定义属性“System.Management.Automation.PSCredential”的类型