gpt4 book ai didi

javascript - 在另一个文件中的函数表达式内调用函数总是给出未定义的错误

转载 作者:行者123 更新时间:2023-11-28 08:19:16 24 4
gpt4 key购买 nike

所以,我在js方面非常新手,并试图模仿我见过的函数的实现,但它给出了错误。搜索啊搜索,我既不明白哪里出了问题,也不明白与某些示例有何不同......下面的所有内容只是我正在做的事情的代表。

我有两个js脚本,Flower.jsTree.js
所以,我模仿的功能或多或少是这样的Flower.js:

var Lily = (function() {

function petal() {
//do A
}
})();

Tree.js 中,我尝试像这样调用 petal:

function grow() {
Lily.petal();
}

我将它们放入 html 中,如下所示:

<script src="js/Flower.js"></script>
<script src="js/Tree.js"></script>

但它没有给出任何结果并且总是给出错误

Uncaught TypeError: Cannot read property 'petal' of undefined

我尝试过更改这个和那个,并且错误发生了变化,但无论我进行什么更改,错误消息中总是有 undefined 。我犯下的严重错误是什么?是在声明中还是在调用函数中?

最佳答案

在您的示例中,petal 函数可以称为“Lily 模块的私有(private)函数”下面的代码声明了一个立即调用的函数,因此 Lily 的值就是函数的返回值。

如果您希望 Lily 可以访问 Petal,您可以尝试如下操作:

var Lily = (function() {

return {
petal : function() {
console.log('Petal has been called');
},
someOtherMethod : function () {
console.log('someOtherMethod has been called');
}
}
})();

Lily.petal();Lily.someOtherMethod();

关于javascript - 在另一个文件中的函数表达式内调用函数总是给出未定义的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23187105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com