在我的 nodejs 应用程序中,我正在使用window.myfunction = function(){...}
方式通信或调用两个不同 js 文件中存在的函数。确实它工作得很好。我也经历了这个问题,这有助于我更好地学习。
我的问题/疑问是,使用window
对象调用用户定义的函数可以吗?
(在客户端的性能、跨浏览器兼容性和明显的安全性方面还可以。)谢谢。
(我是 javascript 编程的初学者)
在我的 nodejs 应用程序中,我正在使用window.myfunction = function(){...}
方式通信或调用两个不同 js 文件中存在的函数。确实它工作得很好。我也经历了这个问题,这有助于我更好地学习。
我的问题/疑问是,使用window
对象调用用户定义的函数可以吗?
(在客户端的性能、跨浏览器兼容性和明显的安全性方面还可以。)谢谢。
(我是 javascript 编程的初学者)
这就是我们在谈论时所谈论的Global Scope
尝试减少我们放入全局范围的代码量很重要,因为它增加了与另一个库或文件发生冲突的可能性。
例如,如果您有 companyA.js 和 demoB.js,并且它们都包含retrieveItems
在全局范围内调用的方法,那么就会发生冲突。
作为 JS 开发人员,您需要意识到这个问题,并尝试采取一些措施来避免这些问题。
在浏览器的上下文中,所有全局函数都附加到窗口对象,所以如果你有
function myFunction() {
alert("Hey!");
}
然后
myFunction();
和
window.myFunction();
是同一个电话
是的,你可以定义你的功能,window.myFunction = function() { /*...*/ }
但这很奇怪
在 Javascript 编程中有一个全局对象,它是一个包含所有全局变量的根对象。全局对象取决于您使用的运行时。不确定 Node.js,但如果 javascript 在浏览器中运行,则全局对象是 window 对象。如果您正在创建一个全局变量,那么您正在创建窗口对象的属性。
var def="你好";
您可以使用 def 变量或使用 window.def 访问上述值这也适用于函数。
函数 myFunc(){ console.log("你好"); }
所以,如果你看到 window 对象,你会发现创建了 myFunc 属性,它保存了这个函数。您可以使用 myFunc(); 执行此功能;直接或使用 window.myFunc();
全局变量导致混乱,我不太赞成全局变量。尝试使用 IIFE。按照下面的链接。