window.myFunction = myFunction 与 onclick="mySecondFunction()"

问题描述 投票:0回答:2
javascript html
2个回答
0
投票

当你在全局范围内声明一个函数 myFunction 时,它就是 window.myFunction 所以

window.myClickFunction = myClickFunction;
和做
myfunction=myFunction
一样,没有任何效果。

要回答#3,我们需要查看更多代码。也许您没有在全局范围内声明 myClickFunction,而是在事件处理程序或其他内容中声明

例如

window.addEventListener("load",function() {
  function myFunction() { console.log("hello"); }
})

function myFunction1() { 
  console.log("hello from myFunction1"); 
  myFunction(); // not in window scope
}

myFunction1()


0
投票

1.在第一种方法中,您使用 HTML 属性从 JavaScript 访问全局变量或函数,而在第二种方法中,您使用 JavaScript 访问标签并添加事件。这是关于谁发起呼叫的问题。

2.如果只是与 UI 相关,则可以仅使用 HTML 和 onclick。

3.只要没有 type="module" 属性,您的 myClickFunction() 就应该可以工作。如果是这样,您需要使用 window.myClickFunction = myClickFunction 将其附加到窗口对象,使其成为全局函数,这允许 HTML 访问该函数。然而,这种方法仍然有局限性,因为它只允许从 HTML 访问,而不是从所有 JavaScript 文件访问。

© www.soinside.com 2019 - 2024. All rights reserved.