gpt4 book ai didi

javascript - js 模块模式中函数的实现

转载 作者:行者123 更新时间:2023-11-28 05:45:01 26 4
gpt4 key购买 nike

我有一堆 js 代码,我试图使用模块模式来包装它们:

(function(){

function closeClicked(closeButton)
{
//do some stuff
}
//some more js code

}());

html 调用者定义如下:

<button type="button" onclick="closeClicked(this)">
<span aria-hidden="true">×</span></button>

代码将一些 html 注入(inject)到页面上的元素中,并且 html 中的按钮调用 js 函数。这按预期工作,但当所有代码都包装为模块时找不到该函数。当此代码包装为模块时,我是否需要以不同的方式定义或调用该函数?

最佳答案

这是设计使然。闭包中的变量在闭包外部不可访问。

在模块模式中,您公开一个包含您的功能的模块。在这种情况下,它看起来像这样:

var myModule = (function(){

function closeClicked(closeButton)
{
//do some stuff
}

//some more js code

return {
closeClicked: closeClicked
}
}());

myModule 将是从外部函数返回的对象。然后您将引用myModule.closeClicked

关于javascript - js 模块模式中函数的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38600076/

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