Javascript:用于调用用户定义函数的window对象的效率

时间:2013-11-12 04:24:35

标签: javascript node.js

在我的nodejs应用程序中,我正在使用window.myfunction = function(){...}方式进行通信或说使用两个不同的js文件调用函数。确实它的工作完美。我也经历了this问题,这有助于我更好地学习。

我的疑问/疑问是,可以使用window对象来调用用户定义的函数吗? (在客户端的性能,浏览器兼容性和安全性方面都很好。)谢谢 (我是javascript编程的初学者)

3 个答案:

答案 0 :(得分:2)

当我们谈论Global Scope

时,我们正在讨论这个问题

尝试减少我们放入全局范围的代码量非常重要,因为它会增加与其他库或文件冲突的可能性。

例如,如果您有companyA.js和demoB.js,并且它们在全局范围内都包含一个名为retrieveItems的方法,则会发生冲突。

作为JS开发人员,您需要了解此问题,并尝试采取一些措施来避免这些问题。

答案 1 :(得分:0)

在浏览器的上下文中,所有全局函数都附加到窗口对象 所以,如果你有

function myFunction() {
   alert("Hey!");
}

然后

myFunction();

window.myFunction();

是相同的电话

是的你可以定义像window.myFunction = function() { /*...*/ }这样的功能,但这很奇怪

答案 2 :(得分:0)

在Javascript编程中,有一个全局对象,它是一个包含所有全局变量的根对象。全局对象取决于您使用的运行时。不确定Node.js但是如果javascript在浏览器中运行,则全局对象是window对象。 如果要创建全局变量,则要在窗口对象上创建属性。


    var def="Hello";

您可以使用def变量或使用window.def访问上述值 这也适用于功能。


    function myFunc(){
       console.log("Hello");
    }

因此,如果您看到窗口对象,您会发现创建了保存此函数的myFunc属性。 您可以使用myFunc()执行此功能;直接或使用window.myFunc();

全局变量导致混乱,不太支持全局变量。尝试使用IIFE。请点击以下链接。

http://jkoder.com/avoid-polluting-global-namespace-in-javascript-iifeimmediately-invoked-function-expression/