gpt4 book ai didi

javascript - 严格模式语句导致函数未定义

转载 作者:行者123 更新时间:2023-11-30 07:26:45 24 4
gpt4 key购买 nike

我已经将所有函数包装在一个立即调用的函数表达式中,如下所示:

(function(){
"use strict";

function toggleComment(parentCommentID) {
$("form#" + parentCommentID).toggle();
}

function scrollBottom() {
window.scrollTo(0, document.body.scrollHeight);
}

})();

但是,通过链接调用其中一个函数时:

<a href="javascript:void(0)" onclick="toggleComment(159); return false;">Reply</a>

Chrome 控制台输出 Uncaught ReferenceError: toggleComment is not defined。我是否错误地认为立即调用的函数表达式,正如其名称所暗示的那样,应该立即调用,因此应该调用 toggleComment?我应该以不同的方式调用函数吗?

最佳答案

toggleComment 函数不可见。它包含在您正在使用的就绪函数中;如果您希望能够像那样调用它(在大多数情况下不推荐这样做),您必须将它提升到该函数之外并使其全局可访问。

而这与strict无关。如果您删除 strict 行,这个问题仍然是一样的。

关于javascript - 严格模式语句导致函数未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11695695/

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