我试图使用HTML脚本标记内的文件中定义的某个函数。
这是javascript文件myfunction.js:
fct = function() {
};
在index.html里面我有:
<script src="./myfunction.js"></script>
<script>
fct.some.property = function() {
}
</script>
它说fct.some在控制台上是未定义的。 如何定义一些内部fct,以便我可以在oter脚本中使用它?我不想使用任何图书馆。
我尝试了以下但不起作用:
fct = function() {
return {
some: {}
}
};
答案 0 :(得分:1)
我无法重现错误;当我按原样测试你的代码时
fct.some未定义
修复方法是:
fct.some = {};
fct.some.property = function() {
}
这对我来说很好。
答案 1 :(得分:0)
为了确保我的问题正确,看起来你正在尝试 使用你直接在javascript文件中写的函数 你的html文件,但你有一个问题,它回来了 未定义。
在测试中,我发现只要.js中的fct函数是全局的,那么它就可以工作,但HTML中的示例还有另一个问题(但它可能只是一个错字,因为它是一个例子)
您将.js文件的脚本src正确地放在内联js上方,但是然后在内联js脚本标记中说:
fct.some.property = function(){}
问题是.some
尚未定义,因此您无法为其附加属性。尝试:
fct.some = {} // empty object
fct.some.property = function(){}
编辑:所以,这适用于repl.it,但它不能在stackoverflow片段编辑器中工作。在代码段编辑器中,它给出了与您相同的错误。奇
let fct = function() {
}
<!DOCTYPE html>
<html>
<head>
<link href="index.css" rel="stylesheet" type="text/css" />
</head>
<body>
<script src="index.js"></script>
<script>
console.log(fct)
fct.some = {}
fct.some.property = function() {
return 7
}
console.log(fct.some.property())
</script>
</body>
</html>
答案 2 :(得分:0)
您正在导入JS文件。只需检查它是否在html的head标签中。您遇到此问题是因为您想将“property”分配给fct的“some”。你没有在这里定义什么是“某些”。我试图删除“some”
来解决您的问题的index.html
<html>
<head>
<script src="myfunction.js"></script>
</head>
<script>
fct.some = function() {
}
</script>
<body>
</body>
</html>
myFunction.js
fct = function() {
};
以下是一些对您有用的链接adding custom properties to a function