这个JavaScript函数的目的是什么?

时间:2009-11-11 19:28:20

标签: javascript

我在名为common.js的文件中找到了这个:

function openBrowserWindow(theURL, winName, features) {
    window.open(theURL, winName, features);
}

我试图弄清楚编写它的人的意图是什么(或者任何程序生成它。)它似乎只是镜像DOM window.open。目的是什么?为什么要简单地包装一个全局方法?

该功能最终会停留在窗口对象中。我做了一个console.log(窗口),看到openBrowserWindow就在那里。奇怪的是window.open没有列出。

7 个答案:

答案 0 :(得分:10)

这是一个封装功能。如果您必须稍后更新窗口的打开方式(添加更多选项,更改大小等),则更新一个函数比更新调用window.open的所有位置更容易。

答案 1 :(得分:2)

看起来它只是window.open函数的一个更友好的命名包装器。

答案 2 :(得分:1)

我能想到在您自己的函数中包装现有函数的唯一优势是为将来的可扩展性留出空间。然后,您可以在不破坏现有代码的情况下添加额外参数。这是封装的基本形式。

答案 3 :(得分:1)

我认为开发人员可能忘记完成该功能,以便检查新窗口是否被弹出窗口阻止程序阻止。

在这里,让我为你完成:

function openBrowserWindow(theURL, winName, features) {
    var MyWin = window.open(theURL, winName, features);
    if (MyWin==null) {
        alert("It appears that a pop-up blocker is preventing me from opening the new  window.\r\n\r\nTurn off your pop-up blocker or try Ctrl-Click next time.");
    }
}

欢迎你。 ;)

答案 4 :(得分:0)

为什么不可能知道,你可能不想要它的事实还有更多问题。

你应该查看它被使用的所有地方,看看它是如何使用它的逻辑,否则只是摆脱该函数并内联这个函数调用。

如果我正在讨论它,我会包装一个函数,但我怀疑是这种情况。

以下是关于currying的文章: http://ejohn.org/blog/partial-functions-in-javascript/

答案 5 :(得分:0)

我希望它的一些聪明的屁股试图在The Daily WTF上列出,但我深深怀疑它的外观如下:一个包装window.open()方法的函数

因为你问我猜测没有文件。你对它的使用位置有一些背景吗?

答案 6 :(得分:0)

这是一个封装功能。

可能在开发人员发现需要完成任何浏览器特定黑客的情况下,而不是在他需要创建新窗口的每个地方应用更改,他可以将黑客放入封装功能中。